This commit is contained in:
Bertrand BRUN 2010-11-08 19:13:51 +01:00
commit 2905eaf456
2 changed files with 9 additions and 8 deletions

View File

@ -144,7 +144,7 @@ par le compilateur et par linterpréteur"
,(lisp2li (implicit-progn body) new-env)))))
;; defun
((eq 'defun (car expr))
`(:mcall set-defun (:const . ,(second expr))
`(:call set-defun (:const . ,(second expr))
,(lisp2li `(lambda ,(third expr) ,@(cdddr expr)) env)))
;; apply
((eq 'apply (car expr))
@ -227,11 +227,11 @@ par le compilateur et par linterpréteur"
(deftest (lisp2li defun)
(lisp2li '(defun bar (x) x) ())
'(:mcall set-defun (:const . bar) (:lclosure 1 :cvar 0 1)))
'(:call set-defun (:const . bar) (:lclosure 1 :cvar 0 1)))
(deftest (lisp2li defun)
(lisp2li '(defun foo (x y z) (list x y z)) ())
'(:mcall set-defun (:const . foo)
'(:call set-defun (:const . foo)
(:lclosure 3 :call list
(:cvar 0 1)
(:cvar 0 2)
@ -239,11 +239,11 @@ par le compilateur et par linterpréteur"
(deftest (lisp2li setf)
(lisp2li '(setf y 42) '((x 0 1) (y 0 2)))
'(:set-var (0 2) 42))
'(:set-var (0 2) (:const . 42)))
(deftest (lisp2li setf)
(lisp2li '(setf (cdr '(1 2 3)) 42) ())
'(:set-fun cdr 42 '(1 2 3)))
'(:set-fun cdr 42 '(1 2 3)))
(deftest (lisp2li lambda)
(lisp2li '(mapcar (lambda (x y z) (list x y z)) '(1 2 3)) ())
@ -328,4 +328,4 @@ par le compilateur et par linterpréteur"
'(:if (:call not
(:call eq (:call car (:const 1 2)) (:const . 1)))
(:const . nil)
(:const . T)))
(:const . T)))

View File

@ -255,6 +255,7 @@ darguments dans un certain environnement."
(deftestvar (meval :set-var) env #(() 2))
(deftest (meval :set-var)
(progn
(meval (lisp2li '(setf x 42) ()) env)
(meval (lisp2li '(setf x 42) '((x 0 1))) env)
env)
#(() 42))
#(() 42)
#'equalp)