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)
(double_factorial n-1)
手段は((double_factorial n) - 1)
そうはい、それは無限再帰の問題です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加