我刚刚开始使用Scheme
进行函数式编程,并试图打印斐波那契数列。这里是我的代码 -在计划中使用追加
(define (fib n)
(cond
((= n 1)
1)
((= n 0) 0)
((= n 5) '())
(else (append (list(+ (fib (- n 1)) (fib (- n 2)))) '()))
)
)
(fib 5)
应该理想输出 - (0 1 1 2 3)
但我得到的输出是'()。任何人都可以帮助搞清楚这个错误吗?
编辑 感谢@uselpa指出,不需要((= n 5)'())。取出后,我收到以下错误 -
ListCC cannot be cast to SEIntread: bad syntax, unexpected)
Mess cannot be cast to SEIntMess cannot be cast to SEInt
你得到'()因为你告诉你的程序在n是5时返回'()。试着重写你的程序if if else if伪代码 –