Secondo this question la legge secondo Functor è implicito nel 1 ° in Haskell:Haskell Prima Legge Functor da Second
1st Law: fmap id = id
2nd Law : fmap (g . h) = (fmap g) . (fmap h)
è il vero contrario? A partire dalla 2a legge e impostando g
uguale a id
, posso motivare quanto segue e ottenere la prima legge?
fmap (id . h) x = (fmap id) . (fmap h) x
fmap h x = (fmap id) . (fmap h) x
x' = (fmap id) x'
fmap id = id
dove x' = fmap h x