SSブログ

"The Whitespace Thing" for OCaml [OCaml]

OCaml のプリプロセッサに "The Whitespace Thing" for OCaml [1] というのがあるのを知った。

OCaml をやり始めてハマった部分は if の条件節がセミコロン区切りになるときに括弧または begin...end で囲まなければいけないというところで、これには今も何か違和感を感じる。
このプリプロセッサではインデントに意味を与えることでこのような括弧を排除することができるようになる。[1] のページの Code examples をみると、どれも右のほうが好ましい。まだ試していないけどパターンマッチのネストの問題にも有効なのかもしれない。

OCaml の camlp4 というプリプロセッサは―私にはまだ使い方がまるで理解できないけど―こうした文法の書き換えが行える程度に柔軟らしい(追記: よく読んでみたら現時点ではまだ camlp4 は使っていないようだ)。
でもこのようなプリプロセッサで自分好みの文法になるからといってそれを使うべきかどうかというのはちょっと迷う点だ。例えば C FAQ [2] に出てくる有名(?)な「#define begin { 」「#define end }」とやってることは差はないのではないか?という想いもよぎったりする。

[1] http://people.csail.mit.edu/mikelin/ocaml+twt/
[2] http://c-faq.com/cpp/slm.html


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。