- 275 名前:デフォルトの名無しさん mailto:sage [04/10/17 14:12:57]
- >>274
> print $ [3,1+2,4] !! 0 あたりのことを言われてるのかな? Haskellにおいて、評価は印字などの動作によってしか引き起されない。 だから、とりあえず単純な印字の例を挙げただけ。 べつに print $ replicate ([3,1+2,4]!!0) "foo" のような例でもかまわない。 (当然この場合も1+2は評価されない。) Haskellでは、IOに関連づけられなければ、式が評価されることはない。 対話的環境でも暗黙のprintがなされていると考えられると思う。 (ちなみに、対話的環境では返り値がIOならばそれの実行を、 それ以外だったらprintをするようになっているのだと思う。) 当然、print $ [3,1+2,4]!!0で、 1+2が印字されないことをもって、評価されないと言っているわけではない。 print $ [3,error "foo", 4] !! 0 で、エラーが生じないというのと同じことを言ったつもりである。 もしかしたら、もっと根本的な誤りを突いているのかもしれない。 そうだったらもう少し詳しい説明をよろしくおねがいします。
|

|