我需要计算1到n的所有阶乘的积。当我调用这个函数double_factorial(参数至少为2或3)时,它似乎被调用了一会儿,然后什么都没有发生,几秒钟后GHCi就关闭了。出了什么问题?我看不到无限递归吗?这是我的代码:
double_factorial :: Integer->Integer
double_factorial n
| n<0 = error "negative number is given"
| n==0 = 1
| otherwise = (factorial n)*(double_factorial n-1)
where
factorial :: Integer->Integer
factorial n
| n == 0 = 1
| otherwise = n*(factorial n-1)