14

何かがMonoidまたはMonadであることがわかった場合は、 や など、あらゆる種類の楽しい関数を使用するようfoldMapsequenceなりmapMます。彼らは私を幸せにしてくれます。

何かが であることがわかった場合はどうなりますCategoryか? オーバーロード以外に楽しいことはidあり(.)ますか?

4

2 に答える 2

11

idと(。)をオーバーロードする以外に何か楽しいことはありますか?

ええと、あなたはそれらに関連する法律も(すべきです)取得します:

"identity/left" forall p .
                id . p = p
"identity/right"        forall p .
                p . id = p
"association"   forall p q r .
                (p . q) . r = p . (q . r)

mapMちなみに、またはのような多くの楽しい機能が得られない理由foldMapは、何かがカテゴリであると言うことは、実際にはそれについてほとんど何も言っていないということです。私が推測する最も便利な関数は、で定義されている関数ですControl.Category。これにより、コードが読みやすくなることがあります>>><<<

于 2011-10-19T07:49:31.317 に答える
7

Control.Categoryは の基礎作業にすぎず、Control.Arrowそこから楽しい関数が得られます。

于 2011-10-19T08:17:05.737 に答える