;;; $Id: remove-sym-exp-with-map.scm,v 1.2 2005/02/07 17:40:20 leavens Exp $ (load-quietly-from-lib "sym-exp.scm") (deftype remove-sym-exp (-> (symbol sym-exp) (list-of sym-exp))) (define remove-sym-exp (lambda (sym symexp) (if (sym-exp-symbol? symexp) (if (eq? sym (sym-exp->symbol symexp)) '() (list symexp)) (list (s-list (remove-s-list sym (sym-exp->s-list symexp))))))) (deftype remove-s-list (-> (symbol (list-of sym-exp)) (list-of sym-exp))) (define remove-s-list (lambda (sym slst) (apply append (map (lambda (sexp) (remove-sym-exp sym sexp)) slst))))