Haskell - 为什么在这些情况下推断的类型不同?

时间:2013-10-02 08:52:07

标签: haskell lambda type-inference

为什么在将匿名函数绑定到名称时会以不同方式推断类型?

Prelude> :type (+)
(+) :: Num a => a -> a -> a

Prelude> let bar (x,y) = x+y
Prelude> :type bar
bar :: Num a => (a, a) -> a

Prelude> :type \(x,y)->x+y
\(x,y)->x+y :: Num a => (a, a) -> a

Prelude> let foo =  \(x,y)->x+y
Prelude> :type foo
foo :: (Integer, Integer) -> Integer

1 个答案:

答案 0 :(得分:0)

对于多态类型,它是GHCi的类型默认值。

这些规则允许使用gchi作为“用户友好”“计算器”,不使用签名。

但可以肯定的是,这些规则不仅有所帮助,而且有时会阻碍。

相关问题