- 777 名前:デフォルトの名無しさん mailto:sage [2005/11/28(月) 23:57:12 ]
- >>774
標準 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! みたいに評価されるから,陽に空リスト以外のリストを作る部分は無い.
|

|