【发布时间】:2018-01-11 16:40:43
【问题描述】:
我有两个简单的例子:
1) xt 函数(这是什么?)
Prelude> :t fmap
fmap :: Functor f => (a -> b) -> f a -> f b
Prelude> :{
Prelude| f::Int->Int
Prelude| f x = x
Prelude| :}
Prelude> xt = fmap f // ?
Prelude> :t xt
xt :: Functor f => f Int -> f Int
Prelude> xt (+2) 1
3
2) xq 函数(通过合成)
Prelude> :{
Prelude| return x = [x]
Prelude| :}
Prelude> xq = return . f
Prelude> :t xq
xq :: Int -> [Int]
Prelude> :t return
return :: a -> [a]
xq 函数我通过组合 return(f(x)) 获得。但这是什么意思:fmap f 和有什么区别?
【问题讨论】:
-
@chepner 我的问题不是,
functor是什么。我想知道fmap f这个符号是什么意思 -
如果你知道函子是什么,那么
fmap f的含义就很明显了。不是特殊语法,只是函数应用。
标签: haskell