我想根据序列 binary-e 制作一个#t/#f 语句列表。如果二进制 e 中的值为 0,则放入 lst 中的值应该是#t,或者如果它是 1,它应该是#f。n 参数是 lst 应该是多长时间。但是它总是返回一个空列表。这是我的代码:
(define (mysequence n)
(define binary-e (list 0 0 1 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1))
(define (makelist lst k)
(cond((= k (- n 1)) lst)
((= 0 (list-ref binary-e k)) (begin (cons #t lst) (makelist lst (+ k 1)) ))
((= 1 (list-ref binary-e k)) (begin (cons #f lst) (makelist lst (+ k 1))))
)
)
(makelist '() 0)
)
谢谢你的帮助。