Identity
是个 Functor 的实例。从定义上看,只是用了个盒子把值包了起来, fmap
相当于什么都没有做,简单的将里面的值拿出来,然后应用 f
,再把 结果放回到盒子中。代表了一个不含任何额外上下文信息的盒子。
newtype Identity a = Identity { runIdentity :: a }
instance Functor Identity where
fmap f = Identity . f . runIdentity
Identity
是个 Functor 的实例。从定义上看,只是用了个盒子把值包了起来, fmap
相当于什么都没有做,简单的将里面的值拿出来,然后应用 f
,再把 结果放回到盒子中。代表了一个不含任何额外上下文信息的盒子。
newtype Identity a = Identity { runIdentity :: a }
instance Functor Identity where
fmap f = Identity . f . runIdentity