(defun find-in-env (symb env) (let ((cell (assoc symb env))) (if cell (cadr cell) symb ) ) ) (defun replace-vars (expr env) (if (consp expr) (mapcar #'(lambda (x) (replace-vars x env)) expr) (find-in-env expr env) ) ) (defun meval-body (expr env) (eval (replace-vars expr env) ) )