commit 95e76ef1636a0afe279348d24d7f1d9cdf277601
parent ae51cc671ad7d277668a526be3c05466242fee88
Author: Bertrand BRUN <bertrand.brun@me.com>
Date: Sat, 6 Nov 2010 13:25:06 +0100
Amelioration de meval-progn
Diffstat:
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git 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)))))