[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
310
(1): 2011/10/28(金)19:10 AAS
>>309
> 同時に感覚的なイメージでモナドを上手に例えて伝えるようなものがあまりない
> のかもとも思ったかな。

確かにね

hage :: [Int]
hage = do
x <- [1..5]
when (x == 3) (fail "discard")
return x

こういうのだと、どの世界とどの世界に分けてるのか曖昧だし
明確に分けられたとしても、その世界に何かを閉じ込めているのとも違う気がする
314: 2011/10/28(金)21:31 AAS
do ってただの糖衣構文じゃん、世界の構成要素ではないでしょ

>>310 のは実質これ

hage :: [Int]
hage = [1..5] >>= \x -> when (x == 3) (fail "discard") >> return x

>>313 の言う流儀というのは、結局
Monad クラスのインスタンスの定義方法、だよね
(>>= 関数をどう定義するか、return 関数をどう定義するか、など)

でもそれは、たとえばアローでも同じ事が言えて、
proc do内の世界はproc doの流儀に従ってる・・・
つまり Arrow クラスのインスタンスの定義方法がその流儀となる

じゃあ、アローもモナドと同じように、世界を2つに分けているのかな
分けているのなら、モナドが分ける世界とアローが分ける世界は何が違う?

そこまで考えて初めて、モナドが何をどう分けているのか、
ということの理解に繋がると思う
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.029s