関数型言語ML(SML, OCaml, etc.), Part 5 at TECH
[2ch|▼Menu]
163:デフォルトの名無しさん
07/12/27 23:00:37
>>149
OCamlでは
('a -> 'a) -> 'a
という型のY-combinatorは定義出来ません。
HaskeiiはLazy evaluationなので、例で書いているように出来るのですが、
OCamlはEager evaluationなので、argumentをすぐに評価しようとするので、それをお書きになったような形で避けるとにコンビネータではなくなってしまいます。
これを避けるにはLazy モジュールを使用してナンチャッテ遅延評価で解決します。そうすればコンビネータとして扱うことが出来ます。

同様のことはモナドにも言えて、ナンチャッテ・モジュールを使用すると解決することがあります。

MLのYコンビネータの書き方はLittle MLerの巻末に書いてあるのでご覧下さい。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5312日前に更新/149 KB
担当:undef