[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
314: デフォルトの名無しさん [sage] 2011/10/28(金) 21:31:03.44 AAS
do ってただの糖衣構文じゃん、世界の構成要素ではないでしょ
>>310310(1): デフォルトの名無しさん [sage] 2011/10/28(金) 19:10:16.64 AAS
>>309
> 同時に感覚的なイメージでモナドを上手に例えて伝えるようなものがあまりない
> のかもとも思ったかな。
確かにね
hage :: [Int]
hage = do
x <- [1..5]
when (x == 3) (fail "discard")
return x
こういうのだと、どの世界とどの世界に分けてるのか曖昧だし
明確に分けられたとしても、その世界に何かを閉じ込めているのとも違う気がする
のは実質これ
hage :: [Int]
hage = [1..5] >>= \x -> when (x == 3) (fail "discard") >> return x
>>313313(1): デフォルトの名無しさん [sage] 2011/10/28(金) 21:06:31.22 AAS
do内の世界はdoの流儀に従ってる。だけど、do外の世界はdo内のことには
結果を渡される以外無関係ってと事だろう?
の言う流儀というのは、結局
Monad クラスのインスタンスの定義方法、だよね
(>>= 関数をどう定義するか、return 関数をどう定義するか、など)
でもそれは、たとえばアローでも同じ事が言えて、
proc do内の世界はproc doの流儀に従ってる・・・
つまり Arrow クラスのインスタンスの定義方法がその流儀となる
じゃあ、アローもモナドと同じように、世界を2つに分けているのかな
分けているのなら、モナドが分ける世界とアローが分ける世界は何が違う?
そこまで考えて初めて、モナドが何をどう分けているのか、
ということの理解に繋がると思う
上下前次1-新書関写板覧索設栞歴
あと 664 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s