03/07/16 12:17
>>713
haskellのリストやアレイはは一部を変更すると全部コピー。
というのは、そのデータ(リスト等)が他の場所で使われるかもしれないから。
一部を変更したということがそのデータを使うプログラムの他の部分にも
わからないといけない。
そのためには、使う部分全部をそのデータの内部状態をあらわすモナドでくるんで
おく必要がある。
# 変更し終わったら、それはモナドの外に出してもいい。
>>715
701の件については、誤読していた。それ以降の式、ってのが何を指すのかわからない。
それはともかくとして、
(IO/状態)モナド内の計算の実行は、手続き型と同様にできるとおもうけど。
> 副作用を発生できるモナドはIOモナドだけです。
haskellプログラムがわからみればIOも他のモナドもかわらない。
プログラマから見たときも結局は同じこと。謎の内部状態をもつ
モナドを受渡しながら処理を順次実行するわけだから。
内部で定義されたモナドでもそのモナドの性質をみとおさなければ、
副作用と同様でしょう。