我正在尝试编写一个递归函数,在给定参数n的斐波那契数列的元素列表中打印一个列表(新行中的每个数字)。我需要使用display函数来打印这些数字并使用辅助方法。
示例:
(fibo 5) 1 1 2 3 5
有人能帮帮我吗?谢谢!
答案 0 :(得分:1)
只需在循环函数中调用您的过程,按照正确的顺序打印元素并打破新行。请注意,我们称之为递归的点对于获得所需的行为非常重要! (要看到这一点,在换行后移动递归调用 - 打印顺序将会改变)。
(define print-fibo
(lambda (n)
(cond ((> n 0) ; keep iterating if we haven't reached zero
(print-fibo (- n 1)) ; advance the recursion
(display (fibo n)) ; display current value of fibo
(newline))))) ; print a new line
例如:
(print-fibo 5)
1
1
2
3
5