関数型言語ML(SML, OCaml, etc.), Part 5at TECH
関数型言語ML(SML, OCaml, etc.), Part 5 - 暇つぶし2ch163:デフォルトの名無しさん
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の巻末に書いてあるのでご覧下さい。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch