関数型プログラミング言語Haskell Part29 [転載禁止]©5ch.io
レス数が950を超えています。1000を超えると書き込みができなくなります。
0970デフォルトの名無しさん
2016/02/01(月) 21:19:05.11ID:yGV1+rav聞いてくれ、さっき遅延評価の凄さを目の当たりにしたんだ。
無限リスト [[a], [a,a], [a,a,a], ・・・] を作る関数
stepup x = iterate (x:) [x]
リストから最左の指定要素を取り除く関数
remove xs x = xs \\ [x]
ここまで準備したところで、下記の計算をしてみる。
let xs = repeat 'a'
in head $ foldl remove (stepup 'a') [xs, xs, xs]
結果は、無限ループに陥ることなく "a" だ。
すごくね?
レス数が950を超えています。1000を超えると書き込みができなくなります。