匿名函数类型签名

时间:2016-07-09 11:54:39

标签: haskell

我正在学习haskell中的匿名函数。

mTH3 x = (\y -> \z -> x*y*z)

此类型签名为

*Main> :t mTH3
mTH3 :: Num a => a -> a -> a -> a    

而这个功能

mTH4 = (\x -> \y -> \z -> x*y*z)  

它出来了

*Main> :t mTH4
mTH4 :: Integer -> Integer -> Integer -> Integer

它们之间的差异是什么原因。为什么第二个功能的类型签名与第一个相同。如果我尝试定义第二个函数的类型签名,如下所示:

mTH4 :: Num a => a -> a -> a -> a
mTH4 = (\x -> \y -> \z -> x*y*z)  

然后输出与mTH3函数相同。

0 个答案:

没有答案