OCamlはじめました
なんかまぁ節操なく手を広げてるなあと感じる方もいらっしゃるかも知れませんが、OCaml始めました。理由はまだない。
現在は、毎日コミュニケーションズ社の「入門OCaml」を購入して、標準ライブラリ紹介の前までひとまず読んでみたところ。
とってもラムダな言語だな、と言うのが第一の感想。関数の適用の具合などがまさにラムダ計算そのもの。Lispよりも関数型。
第二の感想は「B・N・F! B・N・F!」ええと、バッカス記法みたいなこと書くだけで字句解析+構文解析が出来てしまう。超強力。Meta Language の片鱗を見た気がする。
第三の感想は、実用的だと言うこと。オブジェクト指向が備わっているし、書き換え可能な変数も使える。全てを関数型的に書かなければいけないわけでもないというのは嬉しい。
多相性とか型推論とかその辺はまだよく分かっていない。
オブジェクト指向的な側面は、
- 多重継承可能
- Javaで言う interface はない(が構造型サブタイピングを使えば十二分に代用可能)
- キャストが強力
- private 有り
- 自己参照 有り
という状態のよう。とても便利そう。
遅延評価はthunkという仕組みを使うらしい。
そんな感じの、今日感じたことを羅列した、明日以降のためのメモ。
明日はコード書くなどする。