diff options
Diffstat (limited to 'scheme/aps/define-ct.sls')
-rw-r--r-- | scheme/aps/define-ct.sls | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scheme/aps/define-ct.sls b/scheme/aps/define-ct.sls new file mode 100644 index 0000000..761bf93 --- /dev/null +++ b/scheme/aps/define-ct.sls @@ -0,0 +1,15 @@ +(library (aps define-ct) +(export alist define-ct) +(import (rnrs) (sweet-macros) (aps lang) (aps list-utils)) + +;;DEFINE-CT +(def-syntax (define-ct kw (define name value) ...) + #'(def-syntax kw + (let ((a (alist (name value) ...))) + (syntax-match (name ...) + (sub (kw name) (datum->syntax #'kw (car (assq 'name a)))) + ...))) + (eq? (syntax->datum #'define) 'define)) +;;END + +) |