我有以下的Haskell表达式:
map ($ 5) [(-),(+),(*)]
我知道函数应用运算符($)将函数应用于给定的参数。然而,由于(-)、(+)和(*)函数需要两个参数,通过将这些函数应用于5,函数被部分应用。
生成的列表将包含三个函数,它们需要另一个参数:
(1) 从5中减去参数
(2) 将参数加到5上
(3) 将参数乘以5
但是,可以说上述表达式等同于以下表达式吗?Original Answer翻译成"最初的回答"
[(5 -),(5 +),(5 *)]
我认为这是正确的,因为我在GHCI中检查了(5 -)、(5 +)和(5 *)的类型,它们都是接受一个数字并返回一个数字的函数:
Original Answer翻译成"最初的回答"
(5 -) :: Num a => a -> a
(5 +) :: Num a => a -> a
(5 *) :: Num a => a -> a
Any insights are appreciated.