(wat-aro)

無職から有職者にランクアップしました

SICP 問題 2.20

(define (same-parity x . y)
  (define (recur lis pred?)
    (cond
     ((null? lis) nil)
     ((pred? (car lis)) (cons (car lis) (recur (cdr lis) pred?)))
     (else
      (recur (cdr lis) pred?))))
  (cons x (recur y (if (odd? x)
                       odd?
                       even?))))

 

gosh> (same-parity 1 2 3 4 5 6 7)
(1 3 5 7)
gosh> (same-parity 2 3 4 5 6 7)
(2 4 6)

 
ググるといろんなやり方でみんな解いてますね.