功能的类型

时间:2015-09-22 21:25:35

标签: haskell types

我在Haskell教程上看到了这个函数:

factorial :: (Integral a) => a -> a 

我的问题是为什么我应该使用它而不是:

factorial :: Int->Int

这是因为第一个我们可以使用每种类型的数字,而在第二个我们只能使用Int

1 个答案:

答案 0 :(得分:2)

这个答案是对问题的评论的混搭。

您的解释是正确的,除了一个细节:该类型意味着您可以使用任何类型的整数数字(即,Integer的任何类型的实例)。例如,factorial 0.5将不起作用,正如因子函数所预期的那样。