開始
今週図書館に入ったので、早速借りてやってみてる。今日は頭から2章まで。下のプログラムを見れば分かるように、ここまでなら、見かけだけなら手続き型のアナロジーでそれなりに対処できる。
2.8の問題は、
-- 2.8.1 main = do cs <- getContents print $ length cs
-- 2.8.2 main = do cs <- getContents print $ length $ words cs
で正しい結果が出た(ガチでまだ答えを見てない/P.S あってた)。
そういやしばらく前、「実は結果出力が先に呼び出されていて、print(とか、出力系の関数)、の引数に含まれている変数は、辻褄を合わせるために前に前に処理を遡ってるんじゃないか」とか冗談半分に考えたことがあった。今思うと、それはほぼ間違いなく遅延評価です。本当に(ry。
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
posted with amazlet on 06.12.07