関数型プログラミング言語Haskell Part8at TECH
関数型プログラミング言語Haskell Part8 - 暇つぶし2ch482:デフォルトの名無しさん
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