210ef662650e1ed9fe1873f3e89deacea2d12bf0
[jscl.git] / test.lisp
1 (lambda (x y)
2   x)
3
4 (debug "hola")
5 (debug '(1 2 3 4))
6 (debug (if 2 (+ 2 1) 0))
7 (debug (= (+ 2 1) (- 4 1)))
8
9 ;;; Variables
10 (debug "---VARIABLES---")
11 (eval-when-compile
12   (%compile-defvar 'name))
13 (setq name 10)
14 (debug name)
15
16 ;;; Functions
17 (debug "---FUNCTIONS---")
18 (eval-when-compile
19   (%compile-defun 'f))
20 (fsetq f (lambda (x) (+ x 10)))
21 (debug (f 20))
22
23 ;;; Macros
24 (debug "---MACROS---")
25
26 (eval-when-compile
27   (%compile-defmacro 'defmacro
28                      (lambda (name args &rest body)
29                        (list 'eval-when-compile
30                              (list '%compile-defmacro (list 'quote name)
31                                    (list* 'lambda args body))))))
32
33 (defmacro incf (x)
34   (list 'setq x (list '+ 1 x)))
35
36 (setq x 10)
37 (incf x)
38 (debug x)
39
40
41 ;;; &rest lambda-list
42
43 (debug (lambda (&rest x) x))
44 (debug (lambda (x y &rest z) z))
45 (debug (lambda (x y &rest z) x))
46
47 ;; (eval-when-compile
48 ;;   (%compile-defmacro 'defun
49 ;;                   (lambda (name args &rest body)
50 ;;                     (list 'eval-when-compile
51 ;;                           (list 'compile-defun)
52 ;;                           (list 'fsetq (list 'lambda args (list 'progn body)))))))