blob: ead89c20c5d28bd3c570e0b20a28c490fde40e5d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
;;; how to define a static table from a dynamic one
(import (rnrs) (sweet-macros) (table) (ikarus))
(def-syntax define-ct
(syntax-match (define)
(sub (define-ct kw (define name value) ...)
#'(def-syntax kw
(let ((t (tbl (name value) ...)))
(syntax-match (name ...)
(sub (kw name) (datum->syntax #'kw (t 'name))) ...))))))
(define-ct example
(define x 1)
(define y (* x 2)))
(pretty-print (syntax-expand
(define-ct example
(define x 1)
(define y (* x 2)))))
(display (list (example x) (example y)))
|