From 95e76ef1636a0afe279348d24d7f1d9cdf277601 Mon Sep 17 00:00:00 2001 From: Bertrand BRUN Date: Sat, 6 Nov 2010 13:25:06 +0100 Subject: [PATCH] Amelioration de meval-progn --- meval.lisp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/meval.lisp b/meval.lisp index 41b5801..311f97a 100644 --- a/meval.lisp +++ b/meval.lisp @@ -13,10 +13,13 @@ (mapcar (lambda (x) (meval x env)) list)) (defun meval-progn (list env) - (loop - for expr in list - do (meval expr env) - )) + (if (endp list) + nil + (if (endp (cdr list)) + (meval (car list) env) + (progn + (meval (car list) env) + (meval-progn (cdr list) env))))) (defun meval (expr &optional env) "Interprète le langage intermédiaire passé en paramètre." @@ -34,7 +37,7 @@ ((match :call (first expr)) (apply (symbol-function (cadr expr)) (map-meval (cddr expr) env))) ((match :progn (first expr)) - (map-meval ()) + (meval-progn (cdr expr))) (T (error "form special ~S not yet implemented" (car expr)))))