X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=test.lisp;h=e7209a1ff1c90137d18e987cfb4a9361a10e0cfc;hb=531b82883be8e52dbd6c3f5ff6e636726739ef58;hp=286c7f170f30879b579dae445159395bde2e5552;hpb=8864a5f403bb799b7e369ff9985d2070af5100bf;p=jscl.git diff --git a/test.lisp b/test.lisp index 286c7f1..e7209a1 100644 --- a/test.lisp +++ b/test.lisp @@ -1,7 +1,56 @@ - (lambda (x y) x) (debug "hola") +(debug '(1 2 3 4)) (debug (if 2 (+ 2 1) 0)) (debug (= (+ 2 1) (- 4 1))) + +;;; Variables +(debug "---VARIABLES---") +(eval-when-compile + (%compile-defvar 'name)) +(setq name 10) +(debug name) + +;;; Functions +(debug "---FUNCTIONS---") +(eval-when-compile + (%compile-defun 'f)) +(fsetq f (lambda (x) (+ x 10))) +(debug (f 20)) + +;;; Macros +(debug "---MACROS---") + +(eval-when-compile + (%compile-defmacro 'incf + (lambda (y) + (list 'setq y (list '+ 1 y))))) + +(eval-when-compile + (%compile-defvar 'x)) + +(setq x 0) +(incf x) +(debug x) + +(eval-when-compile + (%compile-defmacro 'defmacro + (lambda (name args &rest body) + (list 'eval-when-compile + (list '%compile-defmacro (list 'quote name) + (list* 'lambda args body)))))) + +(defmacro %incf (x) + (list 'setq x (list '+ 1 x))) + +(setq x 10) +(%incf x) +(debug x) + + +;;; &rest lambda-list + +(debug (lambda (&rest x) x)) +(debug (lambda (x y &rest z) x))