- 29 名前:デフォルトの名無しさん mailto:sage [05/02/24 13:23:11 ]
- 再帰の練習? 普通はfilter使って書いちゃうと思うけど。
filterはSRFI-1にあるから処理系が用意しているだろうし、 なくても簡単に書けるよね。 (define (same-parity beg . args) (let ((parity (odd? beg))) (cons beg (filter (lambda (x) (eq? parity (odd? x))) args)))) (define (filter pred lst) (let loop ((lst lst) (r '())) (cond ((null? lst) (reverse r)) ((pred (car lst)) (loop (cdr lst) (cons (car lst) r))) (else (loop (cdr lst) r)))))
|

|