gec*_*kos 5 haskell functor algebraic-data-types sum-type
我不知道为什么fmap _ a = a
下面是非法的。这是代码:
data Sum a b = First a | Second b
instance Functor (Sum a) where
fmap f (Second b) = Second (f b)
fmap _ (First a) = First a
fmap _ a = a -- Why can't I do this instead?
Run Code Online (Sandbox Code Playgroud)
另一个问题是,这是否会影响性能,还是仅在编译时才会发生?