multirember はアトム a とラット lat を引数に取り、lat の中のすべての a を取り除く。
(define multirember (lambda (a lat) (cond ((null? lat) (quote ())) ((eq? (car lat) a) (multirember a (cdr lat))) (else (cons (car lat) (multirember a (cdr lat)))))))
ポイントは、5行目の (eq? (car lat) a)
のときにも再帰しているところだな。
実行例:
gosh> (multirember 'cup '(coffee cup tea cup and hick cup)) (coffee tea and hick)