summaryrefslogtreecommitdiff
path: root/scheme/aps/define-ct.sls
diff options
context:
space:
mode:
Diffstat (limited to 'scheme/aps/define-ct.sls')
-rw-r--r--scheme/aps/define-ct.sls15
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
+
+)