1

当匿名函数绑定到名称时,为什么类型推断不同?

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
4

1 回答 1

0

它是 GHCi 中为多态类型默认的类型。

这些规则允许将 gchi 用作“用户友好的”“计算器”并且不使用签名。

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

于 2013-10-02T10:39:54.657 回答