3
我试着做一个函数的迭代/尾递归版本来计算Fibonacci序列的第 n th数,但我得到parse error (possibly incorrect indentation)
。这是为什么发生?我正在使用的代码:解析简单的Haskell斐波那契实现的错误
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
例如已经实施here)。
谢谢!
谢天谢地,您很快收到了一个很好的答案。请,如果可以的话,一定要说出编译器把错误放在哪里,而不仅仅是错误是什么。但是,再次祝贺获得快速,好的答案。 – BMeph 2010-12-15 20:05:18