練習問題 P.68 numbers-only
(define (filter (proc lis)) (cond ((null? lis) lis) (pred (car lis)) (cons (car lis) (filter proc (cdr lis))) (else (filter proc (cdr lis))))) (define (for-each-numbers (proc lis)) (for-each proc (filter numbers? lis))) (define (map-numbers (proc lis)) (map proc (filter numbers? lis))) (defin (numbers-only (walker) (lambda (proc lis) (walker proc (filter numbers? lis)))))