- 232 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 12:27:10 ]
- ああ、言いたいことは分かったよ。
IOモナドは副作用を陽に扱わない。 Haskellは、副作用を表現するIOモナドを純粋関数的に「繋いで」、mainとして定義するスタイル。 繋いだアクションが逐次実行されることで、実行形式は副作用を伴うプログラムとして動作する。 一方、unsafePerformIO はIOモナドとは違い、Haskellの遅延評価のステップの途中で 本当に「副作用的に」評価される(純粋関数の枠を壊している)。 それを言いたいのは分かった。 >・>>210は「Haskellに副作用が無い」という前提で話している。 > だから少なくともこの文脈ではHaskellのIOを副作用と呼ぶのは不適切。 どうしてその前提が読み取れるのか分からんけど。 というか明らかに IOモナドを副作用を扱うモナドでそ。unsafePerformIOと区別したいのは分かったが。 Haskellで副作用を表現できることはもはや常識なわけで、 「Haskellは副作用を(表面上)追い出した為にIOモナドというややこしい形でしか扱えない。しかし副作用は効率的なプログラムを扱う上で必要悪だよな。もっと簡単にならんのか?」 という風に読んだ。
|

|