圏論とかモナドは簡単か

「圏論とかモナドなんて簡単だからscalaを使って説明してみた」に関する議論
1
りらっくみゃー @rirakkumya

ブログ書いてみた。Now Browsing: 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ - http://t.co/ocZkfPKmTt

2013-03-31 19:16:40
リンク http://rirakkumya.hatenablog.com/ 圏論とかモナドなんて簡単だからscalaを使って説明してみた - だらだらしてたいなぁ はじめに 関数型といえばモナド、モナドといえば難しいという事が巷で言われていますが、いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無いんだよって事を分かって貰えればいいなぁと思い書いて見ることにしました。ただ、圏論といっても適用範囲がとっても広く、応用編になると分けわかんなくなってくるので、ここではプログラミング分野に特化したFP(functional programing)圏論*1について書きます。尚、ぼくは圏論の詳しい事はさっぱり分からないので、学
hiratara @hiratara

"圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた http://t.co/sjsk6kx6a2

2013-04-04 21:43:41
リンク はてなダイアリー "圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた - 北海道苫小牧市出身のPGが書くブログ 射っていうのはscalaだと単なる関数だし、関手はmap、モナドはflatMapなだけです。これのどこが難しいとい..
Kenji Yoshida @xuwei_k

http://t.co/9DyAEgdp7P "ここで定義されているCatはただの1本の射であって圏とは言い難い" "圏論とかモナドなんて不要だからscalaにおける要点だけ説明してみた」ってことあれば全く同意である"

2013-04-05 11:17:55
Kenji Yoshida @xuwei_k

圏論わかってない人が中途半端に一部間違った説明して 「いきなりモナドを理解しようとするから難しく思えるだけで、圏論から順序を追って理解していけば全然難しく無い」 とか言うの明らかに悪影響だと思うし、それに対して150を超えたブクマがつくのもなんなんだろうとか思う

2013-04-05 11:35:59
りらっくみゃー @rirakkumya

間違ってると思う事はツッコミ入れて下さい( ´ ▽ ` )ノ

2013-04-05 12:07:17
りらっくみゃー @rirakkumya

ツッコミ有難うございます。対象が一個しかない空圏も存在するので、射が一個しかなくても圏で良いかなと思うんですがいかがでしょう? / “"圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた - 北海道苫小牧…” http://t.co/BbS0E15zL9

2013-04-05 12:15:07
Keigo Imai @keigoi

圏論なんかわからんくてもプログラミングのモナドは使えるんや!ってことならホントその通りだと思ったし、そういうことを周知するのも敷居を下げるのにとてもいいことだと思う

2013-04-05 12:20:52
Keigo Imai @keigoi

@rirakkumya その圏には恒等射と射の合成が欠けている、ということではないですかね。

2013-04-05 12:25:48
hiratara @hiratara

@rirakkumya あれ、その問いの答えはエントリ内に書いてあったような気がします。

2013-04-05 12:29:02
りらっくみゃー @rirakkumya

@keigoi なるほど。そうですね。読み違えてました。

2013-04-05 12:29:53
りらっくみゃー @rirakkumya

@hiratara あ、意図を読み違えていたようです。すみません。

2013-04-05 12:31:24
りらっくみゃー @rirakkumya

自分で言うのもなんだけど、犬とか猫の使って説明してる記事よりは分かりやすいと思います。

2013-04-05 12:34:30
りらっくみゃー @rirakkumya

ぼくみたいな一般人が知りたいのは学術的な内容じゃなくて、「で、それ仕事にどう役立つの?」って事なのです。

2013-04-05 12:39:22
りらっくみゃー @rirakkumya

合成は後でもう少し突っ込んで、書こうかとおもってたけど、恒等射は説明必要かなぁ

2013-04-05 12:50:53
りらっくみゃー @rirakkumya

これよく読んだら結論おかしいよね。 単にモナドの事をscalaを使って説明したいだけなのに、なぜか「圏論とかモナドなんて不要」をオススメされてる : "圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた http://t.co/SwA0ZMwhND

2013-04-05 19:13:25
りらっくみゃー @rirakkumya

これよく読んだら結論おかしいよね。 単にモナドの事をscalaを使って説明したいだけなのに、なぜか「圏論とかモナドなんて不要」をオススメされてる : "圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた http://t.co/SwA0ZMwhND

2013-04-05 19:13:25
りらっくみゃー @rirakkumya

プログラムカテゴリに限定すれば「圏論とかモナドなんて簡単」に異論がある人はいないんじゃないかな。 scalazのソースを見ればよく分かるし

2013-04-05 19:16:16
りらっくみゃー @rirakkumya

プログラムカテゴリに限定すれば「圏論とかモナドなんて簡単」に異論がある人はいないんじゃないかな。 scalazのソースを見ればよく分かるし

2013-04-05 19:16:16
病気の美少女 @lyrical_logical

おきた。りらくまさん完全にわかってないっぽいし関わると面倒そうなのでみんな逃げろ

2013-04-06 04:30:17
病気の美少女 @lyrical_logical

scalaz のコードを読んだ上であの説明だと、もう一度よみなおしましょうということになりますね

2013-04-06 04:32:57
病気の美少女 @lyrical_logical

trait Cat[arr[_, _]] { def id[A]: arr[A, A]; def comp[A, B, C]: arr[A, B] => arr[B, C] => arr[A, C] } こんなもんか。あとは幾つかの law 満たさないといけなかったはずだけど

2013-04-06 04:40:35
病気の美少女 @lyrical_logical

圏もまた抽象的なものなので、その射を関数と決めてしまったものは、所謂 Hask 圏(scala だけどまあいいでしょ)から諸々を取りさった、黄色い本風にいうなら Hask メタグラフなのじゃ、というところか。黄色い本よりひまわりさんの方が価値あるけどな

2013-04-06 04:46:45
病気の美少女 @lyrical_logical

というかメタグラフ→メタ圏は兎も角メタ圏→圏とか覚えてないな…任意の対象 A についてその対象を dom codom とする idA が必要とかが必要なんでしたっけ。こんなの scala じゃシグネチャとしてあらわせないよぉ~

2013-04-06 04:51:12