フィボナッチ数列のn番目の数を計算する関数の反復/末尾再帰バージョンを作成しようとしましたが、parse error (possibly incorrect indentation)
. なぜこうなった?私が使用しているコード:
fib n
| n < 2 = n
| otherwise = fibhelper 0 1 2 n
where fibhelper a b curr num
| curr == num = a + b
| curr < num = fibhelper b (a+b) (curr+1) num
明確にするために、私はエラーを理解しようとしています-なぜそれが起こっているのか、どのように修正する必要があるのか -効率的に実装しようとはしていません(たとえば、ここfib
で人気のあるzipWith
実装はすでに理解しています)。
ありがとう!