我需要从 1..n 计算所有阶乘的乘积。当我调用这个函数 double_factorial(至少 2 或 3 作为 args)时,它似乎被调用了一会儿,但什么也没发生,几秒钟后 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)