関数型プログラミング言語Haskell Part8 at TECH
[2ch|▼Menu]
482:デフォルトの名無しさん
08/01/30 16:52:05
>>480
処理系と最適化オプションに依る

素朴な遅延評価だと前者
sum [0..100000]
==> foldl (+) 0 [0..100000]
==> foldl (+) 0 (0:[0+1..100000])
==> foldl (+) (0+0) [0+1..100000]
==> foldl (+) (0+0) (1:[1+1..100000])
==> foldl (+) (0+0+1) [1+1..100000]

==> foldl (+) (0+0+1+2+...+100000) []
==> 0+0+1+2+...+100000


だけど、例えばghc-6.8.2で-O2だと、Integer用に特殊化されたsumの実装が使われて、
foldlの蓄積引数が積極評価されるので後者になる


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

5324日前に更新/201 KB
担当:undef