Previous Up
3.7 ML5 --- リスト

Exercise 16  [難易度 2] 今までのことを応用して, 空リスト [],右結合の二項演算子 ::match 式を導入して,リストが扱えるように ML4 インタプリタを拡張せよ.match式の構文は,
match <式1> with []<式2> | <識別子1> :: <識別子2><式1>
程度の制限されたものでよい.

Exercise 17  [難易度 1] リスト表記
[<式1>;…;<式n>]
をサポートせよ.

Exercise 18  [難易度 1] match式において,リストの先頭と残りを表す変数に同じものが使われていた 場合にエラーを発生するように改良せよ.

Exercise 19  [難易度 3] より一般的なパターンマッチ構文を実装せよ.

Exercise 20  [難易度 2] ここまで与えた構文規則では,Objective Camlとは異なり, iflet, fun, match 式などの「できるだけ右に延ばして読む」構文が二項 演算子の右側に来た場合,括弧が必要になってしまう.この括弧が必要なくな るような構文規則を与えよ.例えば,

1 + if true then 2 else 3;;
などが正しいプログラムとして認められるようにせよ.


Previous Up