この質問によると、2番目のファンクターの法則は、Haskellの1番目によって暗示されます。
1st Law: fmap id = id
2nd Law : fmap (g . h) = (fmap g) . (fmap h)
逆は本当ですか?第 2 法則から始めて、 にg
等しく設定するとid
、次のように推論して第 1 法則を得ることができますか?
fmap (id . h) x = (fmap id) . (fmap h) x
fmap h x = (fmap id) . (fmap h) x
x' = (fmap id) x'
fmap id = id
どこx' = fmap h x