sicp/2_20.sch

9 lines
253 B
Scheme

(define (same-parity x . xs)
(define (take-if-par l par)
(cond ((null? l) '())
((= (remainder (car l) 2) par)
(cons (car l) (take-if-par (cdr l) par)))
(else
(take-if-par (cdr l) par))))
(cons x (take-if-par xs (remainder x 2))))