我想使用以下定义创建序列:
(define f1 (lambda (x) #t))
(define f2 (lambda (x) #f))
(define f3 (lambda (x) (if (null? x) #t (car x))))
(define f4 (lambda (x) (if (null? x) #t (not (car x)))))
我的代码如下:
(define (generate func n)
(let ((mylist '()))
(if (= n 0) mylist
(cons (func mylist) (generate func (- n 1)))
)))
它对 f1 f2 和 f3 有效,但是当我尝试 f4 (生成 f4 10)时,它会产生 (#t #t #t #t #t #t #t #t #t #t) 而不是 (#t # f #t #f #t #f #t #f #t #f)。
谢谢你的帮助。