(define (map-cdr f l)
  (if (null? l)
      '()
      (append (f (car l)) (map-cdr f (cdr l)))))
(define (remove-all e l)
  (define (f key)
    (if (eq? key e)
        '()
        (list key)))
  (map-cdr f l))