学習ログ
Lazy Evaluation
理解があってるのかな?
Prelude> let hoge a = putStrLn "fuga" Prelude> hoge (map odd [1..]) fuga
"map odd [1..]"の箇所が評価されることなく、fugaが出力される。
必要になるまで、評価をさぼることで、計算量を押さえることができる。
怠惰は数学の美徳。
備考:map odd [1..]の結果
relude> map odd [1..] [True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True,False,True, .....
ctr + cでストップ