自動テストについて

実験指導書に沿って実装すれば以下の要求を満たすと思うが,自動テストに通らない場合はスタッフに問い合わせるまえに要求に沿っているか確認すること.

インタプリタの動作要求

値の表示形式

int型
一般的な整数値(e.g. 0, 25, -4)
bool型
trueまたはfalse
lits型
リスト形式(e.g. [1; 2; 3])か::で繋がった形式(e.g. 1 :: 2 :: 3 :: []).どちらの場合も入れ子リストの表示を考慮すること(特に後者のケース)
関数型
<>で囲まれた適当な文字列.関数の中身によって表示を変える必要はない(e.g. <fun>, <dfun>)

型の表示形式

OCamlの文法に沿うこと(結合法則に気をつけよ)

要求を満たしたインタプリタの出力例(実際には#の次の文字から改行まではユーザーの入力である)

# 1 + 1;;
val - : int = 2
# let x = 3;;
val x : int = 3
# fun x -> x;;
val - : 'a -> 'a = <fun>
# 1 + true;;
型があってませんよ
# let x = 3 and y = true;;
val x : int = 3
val y : bool = true