begin ... end
OCamlではUnitを返す式に限り,次のように書くことができる.
expr1; expr2; expr3
がしかし,この構文にはものすごい欠陥があると思う.
expr1; expr2; expr3;
と最後の式のあとにセミコロンを書いてしまったとき,うまくパースしてくれないのだ.
こういうときには,beginとendでくくればよい.
begin expr1; expr2; expr3; end
はOKである.begin〜endの中の最後の式は,値を持っていてもよい.最後の式の値がbegin〜endの値となる.
ちなみに,リストは
[1;2;3;]
と書いても大丈夫である.
も一つついでに,ignoreという関数を使えば,式の値を無視してunitを返すようにできる.
begin ignore 1; ignore 2; ignore 3; end