haskell中的Lambda表达式有不同的类型

时间:2018-04-14 14:58:40

标签: haskell types ghc

我正在努力学习Haskell。

我们的功能非常简单。据我所知,以下所有内容都是等效的。

但我不明白为什么f2f2'有不同的类型,以及为什么Integer

此外,如果我手动指定f2'的类型,则会接受它并与f2的作用相同。

f x = x + 1
-- f :: Num a => a -> a

f' = \x -> x + 1
-- f' :: Num a => a -> a

f2 a b = a + b
-- f2 :: Num a => a -> a -> a

f2' = \a b -> a + b
-- f2 :: Integer -> Integer -> Integer

f2'' = \a -> \b -> a + b
-- f2 :: Integer -> Integer -> Integer

有什么想法吗?

0 个答案:

没有答案