私が SICP 2.20 用に書いた関数は次のとおりです。
(define (same-parity x . y)
(if (null? (car y)
'()
(if (= (even? (car y)) (even? x))
(cons (car y) (same-parity (cons x (cdr y))))
(same-parity (cons x (cdr y))))))
そして、私はそれを呼び出そうとします
(same-parity 1 2 3 4 5 6 7)
私が得るエラーは次のとおりです。
equal は #t と #f で機能すると思いました...
オンラインで見つけたコードの例は次のとおりです。実行したところ、動作しました。しかし、私は何を間違っていますか?
(define (same-parity a . rest)
(define (filter rest)
(cond ((null? rest) '())
((= (remainder a 2) (remainder (car rest) 2))
(cons (car rest) (filter (cdr rest))))
(else
(filter (cdr rest)))))
(filter (cons a rest)))