関数型プログラミング言語Haskell Part5
■ このスレッドは過去ログ倉庫に格納されています
0027デフォルトの名無しさん
2006/06/04(日) 21:51:01いや、作者さんじゃないしお詫びされる程じゃないっす。
確かに「世界」と言われても腑に落ちない人も居るかもしれない。
ところで評価順の話ですが、
私、評価順がどうなってるのかなんてよく分かってません(--;
do
x <- return (f v)
print $ g w
print $ x
この場合、観測できるのはg wの印字とf vの印字だけど、
実際はどっちが先に評価されるんだっけ。
例えば、f vが head []を含んでいた場合、g wは印字されるか?
…やってみた。
Prelude> return (head []) >>= \x -> print "hoge" >>= \_ -> print x
"hoge"
*** Exception: Prelude.head: empty list
IOアクションに渡される引数の簡約が、評価順のトップになるという感じなのかな。
(わかりにくい説明でスマソ)
■ このスレッドは過去ログ倉庫に格納されています