以下の定義を使用してシーケンスを作成したいと思います。
(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 10 を生成) のように f4 を試行すると、(#t #t #t #t #t #t #t #t #t #t) が生成されます (#t # f #t #f #t #f #t #f #t #f)。
助けてくれてありがとう。