www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
Mmeval.lisp | 13++++++++-----
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)))))