関数型プログラミング言語Haskell Part3
■ このスレッドは過去ログ倉庫に格納されています
0777デフォルトの名無しさん
2005/11/28(月) 23:57:12標準 Prelude では sum とか product の fold は積極評価のオペレータを
導入して実装されてるんじゃなかったっけ.
>>776
リストを作って壊しているとは限らない.というか普通はそんなことしてない.
product n = foldl (*) 1 (take n (enumFrom 1)) で定義したとき,
product n
= foldl (*) 1 (take n (enumFrom 1))
= foldl (*) 1 (take (n-1) (enumFrom 2))
= foldl (*) 2 (take (n-2) (enumFrom 3))
...
= foldl (*) n! (take 0 (enumFrom n))
= foldl (*) n! []
= n!
みたいに評価されるから,陽に空リスト以外のリストを作る部分は無い.
■ このスレッドは過去ログ倉庫に格納されています