モナドって何ですか?のガイドライン

9
スマートコン @mr_konn

モナド則とか単純過ぎて涙が出る

2010-05-25 13:44:13
スマートコン @mr_konn

『左右単位元が存在 return が存在し、結合法則が成立するもの』ヤバすぎる

2010-05-25 13:46:33
スマートコン @mr_konn

左右単位元returnが存在、の間違い!orz

2010-05-25 13:47:11
スマートコン @mr_konn

今のは(>=>)についてのていぎですね

2010-05-25 13:48:24
スマートコン @mr_konn

本質は (>=>)でありながら実用するのが圧倒的に (>>=) であるせいでモナド則がグロテスクに見えすぎる。モナド怖い病の原因ですね……

2010-05-25 13:50:37
スマートコン @mr_konn

モナド則の恐ろしいところは、『左右単位元が存在し、結合法則がなりたつある種の関数合成』を持つデータ構造、という簡潔な条件だけでほぼあらゆる副作用を表現出来てしまうところにあると思う

2010-05-25 13:53:43
でちまるさん(実際かわいい) @decimalbloat

@mr_konn もう一つ、 return >=> f = f, f >=> return = f, (f >=> g) >=> h = f >=> (g >=> h) だけ言われても「で、これは何?」「モナドです」という押し問答にしかならないこと

2010-05-25 13:53:57
スマートコン @mr_konn

@decimalbloat 悲しいトートロジーですね……なんの説明にもなって居なくて、かつ、なんの間違いもないというところが悲劇的です……

2010-05-25 13:57:52
スマートコン @mr_konn

いまストンと腑に落ちた。「実数の公理を満たすもの」を実数として扱って、中身は気にせずその性質だけから論じる様に、モナドもモナド則を満たせばなんでも良いんだ。実数の定義=実装にDedekindの切断やCauthy列の収束などがある様に、モナドにもIOやMaybe があるのだ!

2010-05-25 14:04:11
でちまるさん(実際かわいい) @decimalbloat

@mr_konn というのを普通の人に言っても「へぇ」で済まされてしまうのです…

2010-05-25 14:05:44
スマートコン @mr_konn

と云う説明で納得してくれたら楽なんだけどなあ……なんでモナド則で副作用を表現出来るのかは、僕には厳密にはわからないので「偉い人が証明したよ」という事で逃げたい……

2010-05-25 14:06:04
スマートコン @mr_konn

まあ、Monads are trees がその辺なのかな

2010-05-25 14:08:05
でちまるさん(実際かわいい) @decimalbloat

友人に http://www.amazon.co.jp/dp/4883031233 を貸したところ、集合から自然数を定義するあたりで分からんようになった、と言っていた。で、何で分からんようになったのか尋ねてみたところ、「この K と k って何?」って聞いてきた(続く)

2010-05-25 14:08:14
でちまるさん(実際かわいい) @decimalbloat

「いや、Kやkが何かは分からないけども、〜を満たすようなKやkがあったら、それは自然数なんだよ」って言っても「で、何?」という話でループしてしまったのである。

2010-05-25 14:10:02
スマートコン @mr_konn

@decimalbloat なんですよね……さっきの説明じゃより難しく言い換えただけになってしまう場合が殆どという……うーーん

2010-05-25 14:10:04
スマートコン @mr_konn

.@decimalbloat 僕は、中学入る前に文字式の導入部で同じ様な混乱をしました。中々納得出来なくて、「で、a+b の答えはなんなの?」と何度も親に訊いた気がします。

2010-05-25 14:14:13
でちまるさん(実際かわいい) @decimalbloat

モナドが何であるかと言われると、モナドの定義を答えるしかないんだけど、それで一体何になるのか。というか、「モナドって何?」って聞いてきた人は、そういうことを知りたいわけじゃない気がする。

2010-05-25 14:14:56
スマートコン @mr_konn

自然数とか日常生活であまりに自明過ぎで、そこに「実在」するものだと思い込んでいる。実数も同様。でも厳密に考えようと思ったら、実はそれほど自明なものではない

2010-05-25 14:17:02
スマートコン @mr_konn

自然数だとかなんだとかに普遍的に成り立つ法則を取り出して、つまりは抽象化したものが文字式。文字式の操作は"数"の法則を満たしていて、中身について考えなくても議論を進められる。モナドも同じで、"副作用"に共通な性質を取り出しただけのもの。IO、リストが自然数や実数ならモナドは文字式

2010-05-25 14:21:33
スマートコン @mr_konn

自然数だって、序数と個数の抽象化だし(有限の範囲では)、具体的な中身が存在する訳じゃない。とにかく一定の法則を満たせば僕らは「自然数だ」と無意識に思う。だから、中身はリンゴでもいいし、お金でもいいし、集合でもいいし、λ式でもいいし、なんでもいい。

2010-05-25 14:26:59
スマートコン @mr_konn

ただ、リンゴは半分に切ったり擦り潰したりは出来ない。それじゃ不味いから、「こう云う法則を満たしてれば自然数と呼ぶよ」と云うことにする。

2010-05-25 14:28:34