X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=test.lisp;h=6d386cba2fc0c295d3d51baf5000a0c094bedce7;hb=2af650b83b1449de72dc7b8209cb2310cdea0509;hp=86848e0c748e85da5d8f74674f087f9ab1c6ae52;hpb=95108b1375281d198995c902c700a66b7bc9c6a3;p=jscl.git diff --git a/test.lisp b/test.lisp index 86848e0..6d386cb 100644 --- a/test.lisp +++ b/test.lisp @@ -1,5 +1,4 @@ -(lambda (x y) - x) +(lambda (x y) x) (debug "hola") (debug '(1 2 3 4)) @@ -20,20 +19,12 @@ (fsetq f (lambda (x) (+ x 10))) (debug (f 20)) -;;; Macros -(debug "---MACROS---") +(debug ((lambda (x) x) 9999)) -(eval-when-compile - (%compile-defmacro 'incf - (lambda (y) - (list 'setq y (list '+ 1 y))))) +(debug #'f) -(eval-when-compile - (%compile-defvar 'x)) - -(setq x 0) -(incf x) -(debug x) +;;; Macros +(debug "---MACROS---") (eval-when-compile (%compile-defmacro 'defmacro @@ -42,9 +33,54 @@ (list '%compile-defmacro (list 'quote name) (list* 'lambda args body)))))) -(defmacro %incf (x) +(defmacro incf (x) (list 'setq x (list '+ 1 x))) +(eval-when-compile + (%compile-defvar 'x)) + (setq x 10) -(%incf x) +(incf x) (debug x) + +;;; Conses +(debug (cons 1 2)) +(debug (car (cons 1 2))) +(debug (cdr (cons 1 2))) + +(setq x '(1 . 2)) +(debug x) +(debug (eq x x)) +(debug (eq '(1 . 2) '(1 . 2))) + +;;; Symbols +(debug (symbol-name 'foo)) +(debug (symbol-name 'foo-bar)) + +(debug (progn 1 2 3 123)) + +(debug (let ((x 99999)) + (incf x))) + +;;; &rest lambda-list + +(debug (lambda (&rest x) x)) +(debug (lambda (x y &rest z) z)) +(debug (lambda (x y &rest z) x)) + + +(progn + (eval-when-compile + (%compile-defun 'f)) + (fsetq f (lambda (x) (* x x)))) + +(debug (f 33)) + +;; (debug (foo)) + +;; (eval-when-compile +;; (%compile-defmacro 'defun +;; (lambda (name args &rest body) +;; (list 'eval-when-compile +;; (list 'compile-defun) +;; (list 'fsetq (list 'lambda args (list 'progn body)))))))