[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
968(1): デフォルトの名無しさん [sage] 2012/01/02(月) 16:15:00.92 AAS
>>967967(1): デフォルトの名無しさん [] 2012/01/02(月) 15:53:19.26 AAS
>>963
最初からモナドと言わずにリストと言えば通じやすかったと思うが。
すまん、言わんとしていることがよく分からん
俺の発言の何に対する意見なんだ?
通じやすかったというのは世間にか? それともここ一連の会話の誰かにか?
前者なら最初から委員会の連中はリストはリストと言っている(モナドは後付け)
後者なら誰だよそんな事言ったの
俺は >>962962(2): デフォルトの名無しさん [] 2012/01/02(月) 14:33:23.75 AAS
>>945
どんなもの達をもってきても、それらが「大体同じである」と見る視点はいくら
でも作れるわけだが、ListとIOとMaybeは大体同じだというモナドの視点はそんな
ナンセンスな視点ではないのだね?
の
ListとIOとMaybeは大体同じだというモナドの視点はナンセンスかどうか、に対して、
モナドはどう同じなのかが論理的に説明できており、かつ役に立つ視点である、
だからナンセンスではない、という自分の考えを謂わば逆説的に述べただけだよ
969: デフォルトの名無しさん [sage] 2012/01/02(月) 16:34:00.46 AAS
>>953それはスーフリの方。
>>959959(2): デフォルトの名無しさん [sage] 2012/01/02(月) 14:06:34.63 AAS
>>952
つまり、プログラマが式をどう考えるかや、コンパイラが式をどう扱うかではなく、
式をどう書くかによって関数型かそうでないかを判断しているのか、お前は
じゃあ、お前の言う関数型を捨てた書き方である
do {x <- getLine; putStr $ "> " ++ x}
これを
getLine >>= putStr . ("> " ++)
こう書いたら、関数型に戻るのか?
あともう一つ、本当にdo表記で似たようなスパゲティ化が起きやすいのか?
お前はdo表記で頻繁にスパゲティ化してしまっているのか?
スパゲティ化という事は、実行順序、Haskellなら計算順序が複雑に絡まるんだよな
それはdo表記だから絡まるのか? むしろdo表記の方が絡みにくくないか?
do表記は手続きっぽくなるから、スパゲティーメイカーになりやすいかも。
スパゲティーにするならせめてカルボナーラかミートソースにしてくれよ。
970(2): デフォルトの名無しさん [sage] 2012/01/02(月) 16:36:45.39 AAS
手続きっぽくなるとスパゲティになる理由は?
ちゃんと自分の言葉で説明できるか?
971(1): デフォルトの名無しさん [] 2012/01/02(月) 16:39:56.99 AAS
>>968
俺の方が曖昧な言い方ですまんかった。
まず通じやすかったというのは世間に対してという意味だった。
「ListとIOとMaybeは大体同じだ」というときの共通性が、言ってしまえばリスト化
(多元化)にあるのだとすれば、モナドなどというよりリストと言った方が
伝わり易いと思ったわけだ。また曖昧なこと言ったかな。
(ナンセンスうんぬんの方はもういいよ)
972(1): デフォルトの名無しさん [sage] 2012/01/02(月) 16:57:05.72 AAS
>>971
あぁ、なるほどな
> 「ListとIOとMaybeは大体同じだ」というときの共通性が、
> 言ってしまえばリスト化(多元化)にあるのだとすれば、
そう解釈してしまったのなら、
> モナドなどというよりリストと言った方が伝わり易いと思ったわけだ。
と言うのも十分に分かる、というか当然の反応だ
ただ残念ながら、少なくとも「それらに見いだした共通性はリスト化だ」
という解釈に関しては間違っている(多元化の意味は分からんが)
Wadler氏が List、IO、Maybeなどにどのような共通性を感じたのかは
Monad型クラスの関数に間接的に表れてはいるが、俺の力ではとても一言で言えない
それこそちゃんと知るには彼の論文や基になったMoggi氏の論文を読まないといけない
ただ、一般的なプログラマには「Monad型クラスの関数がモナドに共通する構造だ」
と言いうだけで応用上は十分だと思う
その共通構造をモナドが応用される前のListやIOに見いだしたと言っていい
973(1): デフォルトの名無しさん [sage] 2012/01/02(月) 18:16:38.74 AAS
>>972
よくわかってないが、非決定計算、副作用、継続についてはMoggiの最初の論文の中で定式化されてる。
共通性といいたいところは多分普遍的性質のことだろうと思う。
普遍性の構造が共通している、というかそれぞれモナドで整理可能だからモナドなんだろう。
974(1): デフォルトの名無しさん [sage] 2012/01/02(月) 18:20:45.89 AAS
>>970
デバッグが困難になる。
975(1): デフォルトの名無しさん [] 2012/01/02(月) 18:25:00.71 AAS
>>973
普遍的性質って具体的には?
976: デフォルトの名無しさん [sage] 2012/01/02(月) 18:27:24.82 AAS
モノイダル圏におけるモノイド対象が存在すること
977: デフォルトの名無しさん [sage] 2012/01/02(月) 18:33:35.46 AAS
>>975
ある一つの性質から全体の性質が定まることで、
モナドの場合はそれが入れ子状になっている、ようだ。
正直そんな説明できるほどわかってない。
978: デフォルトの名無しさん [sage] 2012/01/02(月) 18:46:14.03 AAS
>>974
それは全く説明になっていないと思うぞ
>>970 が訊いているのは手続きっぽくなるとスパゲティになる理由だ
[1] 手続きっぽくなる --> [2] スパゲティになる
原因 [1] によって結果 [2] になることを筋道を立てて説明してほしいのだろう
しかし、デバッグが困難になるというのは、さらにその先の結果だ
[2] スパゲティになる --> [3] デバッグが困難になる
デバッグが困難になるからスパゲティになるのではない([3]-->[2])
スパゲティだからデバッグが困難になる([2]-->[3])
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s