【.NET】F#について語れ【OCAML】
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
450:デフォルトの名無しさん 09/02/12 07:21:21 >>445 冗長なんじゃなくて、正格評価の世界では意味が全く別のものになる。 let rec fix = fun f -> f (fix f) let rec fix = fun f -> fun x -> f (fix f) x 後者では x が遅延の役割をしてくれる。 Haskellのような遅延評価の世界では、確かに冗長なだけ。 451:デフォルトの名無しさん 09/02/12 07:31:11 f そのものを遅延化してしまう(>>439)のと、 引数 x を追加して遅延の役割をしてもらう(>>443)のと、 どちらがコードの見た目的にやさしいかは明らか。w 452:デフォルトの名無しさん 09/02/13 07:47:47 f (fix f) と fun x -> f (fix f) x って同義じゃないの? んー、マジで分からん 453:デフォルトの名無しさん 09/02/13 19:50:03 let rec fix f = f (fix f) だと、f が渡された途端、 f (fix f) ↓ f (f (fix f)) ↓ f (f (f (fix f))) ↓ f (f (f (f (fix f)))) ↓ f (f (f (f (f (fix f))))) ↓ あぼーん 関数を返そうとはするが、fix を展開しようとして無限ループ。 let rec fix f = fun x -> f (fix f) x だと、f が渡されても、 fun x -> f (fix f) x x が渡されるまで fix は展開されない。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5387日前に更新/121 KB
担当:undef