Haskell 函数的类型
我在Haskell教程中看到此函数:Haskell 函数的类型,haskell,types,Haskell,Types,我在Haskell教程中看到此函数: factorial :: (Integral a) => a -> a 我的问题是,我为什么要用它来代替这个: factorial :: Int->Int 这是因为在第一种情况下,我们可以使用各种类型的数字,而在第二种情况下,我们只能使用Int?这个答案是对这个问题的综合评论 您的解释是正确的,除了一个细节:该类型意味着您可以使用任何类型的整数(即,作为整数的实例的任何类型)。例如,factorial0.5将不起作用,正如factor
factorial :: (Integral a) => a -> a
我的问题是,我为什么要用它来代替这个:
factorial :: Int->Int
这是因为在第一种情况下,我们可以使用各种类型的数字,而在第二种情况下,我们只能使用Int
?这个答案是对这个问题的综合评论
您的解释是正确的,除了一个细节:该类型意味着您可以使用任何类型的整数(即,作为
整数的实例的任何类型)。例如,factorial0.5
将不起作用,正如factorial函数所预期的那样。Yes。就是这样。您可能想使用整数
至少一个细节:该类型意味着您可以使用任何类型的整数(即,作为整数
实例的任何类型)。例如,factorial0.5
不起作用。那么,如果我用(numa)代替(integrala),factorial0.5会起作用吗?@paulo_ferreira,当你这样做并测试它时,会发生什么?你能找出原因吗?