Plaster

common-lisp
(defparameter *foo* nil) (defmacro foo () *foo*) ;;;; Only evaluate one of the following forms. ;; EVALUATION EXAMPLE #-(and) (print (eval '(list (setf *foo* t) (foo)))) ;; Evaluation produces the following output: ;; (t t) ;; COMPILATION EXAMPLE (print (funcall (compile nil '(lambda () (list (setf *foo* t) (foo)))))) ;; Evaluation produces the following output ;; (t nil)