関数型プログラミング言語Haskell Part3
at TECH
262:デフォルトの名無しさん
04/10/16 20:00:26
>>261
> どちらの方法でもIOモナドの外部仕様を満たせるんじゃない?
だれが(1)を主張しているの?
> (1) >>=は,左辺の引数についてstrict
f >>= g のfが先に評価されるだけで、actionの実行とは関係ない。
例えば、f >> (g >> (h >> ..)) の無限列ができるだけでactionが実行されない
こともあり得る。
> (2) g(正確にはgの中での副作用の呼び出し)がstrict
なにがいいたいのかよくわからない。
Monadの話をしているのだから>>=の性質について話さないと。
>>255-256理論のことなのかな(そうは読めないけれど)。
それから、IOモナドはこれ
> Special operations (methods in the class Monad, see Section 6.3.6)
> sequentially compose actions,
> corresponding to sequencing operators (such as the semicolon) in imperative languages.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
を要求してるからf >>= gのfが先に評価されるのであって、
>>261の部分からはそうなるとは限らないことに注意。(cf. LazyなStateモナド)
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5373日前に更新/259 KB
担当:undef