関数型プログラミング言語Haskell Part13
■ このスレッドは過去ログ倉庫に格納されています
0816デフォルトの名無しさん
2011/02/08(火) 19:54:41> 射の結合(.)とその単位元(id)は切っても切れない関係のような気がするけど。
圏としてとらえるならば(それはCategoryクラスの名前にかなったこと)、たしかに(.)とidが必要。
でも、圏としてとらえる以前に連結? 合成? できる有向グラフとしてとらえることもできるはずで、その場合は(.)はいるだろうけど、idはいらないんじゃないかな。
議論のために考えた例だけど、例えば
data Foo = Foo ...
data Bar a b = Bar {
runBar :: a -> (b, Foo)
}
のような型があった場合、Barに(.)を定義するのは簡単だが、直感的に自然な形でidが定義できるとは限らないでしょう?
>>815
ここ↓によれば
http://snak.tdiary.net/20091020.html
fmap = liftM は、FunctorでもMonadでもある型では必須の要件らしい。
■ このスレッドは過去ログ倉庫に格納されています