我是 Haskell 的初学者。我知道该函数fmap接受两个参数 ( (a->b) -> f a ->) 并返回一个函子 ( f b),但我无法理解以下 lambda 表达式
*Main> :t \g x -> fmap ($) g x
\g x -> fmap ($) g x :: (t -> a -> b) -> t -> a -> b
Run Code Online (Sandbox Code Playgroud)
函子在哪里?
顺便说一句,我尝试了几个带有不同括号的类似表达式,它们给出了不同的结果:
*Main> :t \g x -> fmap ($) (g x)
\g x -> fmap ($) (g x) :: Functor f => (t -> f (a -> b)) -> t -> f (a …Run Code Online (Sandbox Code Playgroud)