関数型プログラミング言語Haskell Part21
■ このスレッドは過去ログ倉庫に格納されています
0398356
2013/03/02(土) 21:35:07.04> ここは違うんじゃないの?箱は隠蔽のためではないでしょ?
いや、私のイメージでは隠蔽なんだが。
f :: a -> State s b を作れば >>= で簡単に箱から情報を取り出せる。
もっといえば、do 記法の中で <- を使うだけで情報を取り出せる。
そういう意味では隠蔽していないと言えるかもしれん。
でも、State モナドは return x でユーザーが箱に入れる情報の他に、
「状態を表す情報」もこっそり一緒に箱に入れている。
この「状態を表す情報」はユーザーは勝手に取り出したり書き換えたりできん。
これは情報の隠蔽と言えると思うのだが、どうだろうか。
ぶっちゃけて言えば、State や IO がモナドなのは私も理解できるが、
Maybe や Either などがモナドである必然性はちょっと説明できん。
たまたま Monad クラスに fail 関数があるから、かろうじて
Maybe や Either などがモナドであるメリットはあるが・・・
そもそも Monad クラスに fail 関数がある事自体私も意味が分からん。
■ このスレッドは過去ログ倉庫に格納されています