시퀀스 바이너리 -e에 따라 # t/# f 명령문의 목록을 만들고 싶다. binary-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)
)
감사합니다.
(map (lambda (e)
(if (= e 0) #t #f))
binary-e)
심지어 짧은 :