FMAP的函子类型是:困惑在Haskell
fmap :: Functor f => (a -> b) -> f a -> f b
它看起来像,第一应用功能(一 - > b)至FA的参数创建的结果b型,然后应用F到它,并且结果是FB
使用也许例如:
fmap show (Just 1)
result is : Just "1"
相同的话说:
Just (show 1)
但是当( - >)用作函子(在Control.Monad.Instances)
import Control.Monad.Instances
(fmap show Just) 1
result is : "Just 1"
即,只要是第一应用,则显示被应用。在另一个例子中,结果是一样的:
fmap (*3) (+100) 1
result is 303
为什么不* 3,再+100?
是的,你的答案很棒!我犯了一个大错误。非常感谢你。 – 2012-04-24 13:54:37
我混淆了“类型参数”与一个具体参数 – 2012-04-24 14:19:52