練習問題 6.15 sum型を使って、次の型をもつ関数 f1 〜 f7 を定義しなさい。(組型の * と sum は sum のほうが強く結合します)。 (1) f1: ‘a * (‘b,  […]
ヴァリアント
練習問題 6.11ヴァリアントの数式を普通の文字列で表現
練習問題 6.11 上の arith から、その数式の文字列表現を求める関数 string_of_arith、分配則を用いて数式を (i11 X … X i1n1_ + … + (im1 X … X imnm) (ただし […]
練習問題 6.10 ヴァリアントで数式をあらわす
練習問題 6.10 以下は、足し算と掛け算からなる数式の構文をあらわした型定義です。 type arith = Const of int |Add of arith * arith | Mul of arith * ar […]
練習問題 6.9 XMLをヴァリアントで表す
練習問題 6.9 以下のヴァリアントは、XML文書の構成要素を表すデータ構造です。(PCDATAというのは、XMLの用語での文字列です)。 type token = PCDATA of string | Open of […]
練習問題 6.2 ヴァリアントを使う
練習問題 6.2 位置情報が付加された2つの図形が重なりを持つか判定する。 figure with_location -> figure with_location -> bool 型の関数 overlap […]