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