From: Yaroslav K. <kav...@je...> - 2005-07-07 11:27:49
|
clisp from CVS head, mingw Small example: (defmacro m2 (x &optional (y 0)) `(print (format nil "first number ~A; last number ~A" ,x ,y))) (defun f1 (l) (loop for e in l collect (IF (consp e) (cons 'm2 e) (list 'm2 e)))) (defun f2 (l) (defmacro tmp-m1 nil (cons 'progn (f1 l))) (tmp-m1)) CL-USER> (f2 '(5 6 (7 8) (9 34))) "first number 5; last number 0" "first number 6; last number 0" "first number 7; last number 8" "first number 9; last number 34" "first number 9; last number 34" but with (macrolet...): (defun f2 (l) (macrolet ((tmp-m1 nil (cons 'progn (f1 l)))) (tmp-m1))) *** - Invalid access to the value of the lexical variable L from within a MACROLET definition The following restarts are available: ABORT :R1 ABORT Break 1 [144]> It is possible? How? Thanks. -- WBR, Yaroslav Kavenchuk. |