我有一个计划中的项目,我需要在其中实现无限的数字序列。我不能使用任何方案内置的复杂函数,而且我只是不知道如何使我的序列无限,而不会使程序在无限循环中崩溃。我不必真正输出它,但我需要能够使用它。
(seq n) ;;output: n,n+1,n+2,n+3.... to infinity (seq 5) ->5,6,7,8,9...
现在我做了一个序列直到 n+7,但我需要这个到无穷大:
(define (seq n)
(define (asc-order LIST counter)
(cond ((= counter (+ n 7)) LIST)
(else (asc-order (append LIST (cons (+ counter 1) '()))
(+ counter 1)))))
(asc-order '() (- n 1))
)
IO 示例(它有效,但我需要它无限序列):
>(define s (seq 3))
>(car s)
3