summaryrefslogtreecommitdiffstats
path: root/tests/011/macros-1.txr
blob: 946cbf2e2cfd33604322607d38ac9adc2d773e12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@(do
  (progn
    (defmacro rem-num (:env menv some-form)
      (let ((expanded (macroexpand some-form menv)))
        (if (numberp (car expanded))
          (cdr expanded)
          some-form)))

    (prinl
      (macrolet ((foo () '(1 list 42))
                 (bar () '(list 'a)))
        (symacrolet ((x (bar)))
          (list (rem-num (foo)) (rem-num x)))))

    (prinl
      (let ((x 0) (y 1))
        (symacrolet ((a x) (b y))
          (flet ((x (. args) [apply list args]))
            [x y]))))

    (prinl
      (let ((x 0))
        (symacrolet ((a (inc x)))
          (list
            (let* ((a a)
                   (b a))
              (list a b))
            (let ((a a)
                  (b a))
              (list a b))))))))