summaryrefslogtreecommitdiff
path: root/modules/language/python/def.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2017-09-23 20:57:50 +0200
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2017-09-23 20:57:50 +0200
commit5bc1a0f8dd7d6c07380b5e6c56d20a327c0ba587 (patch)
tree96d710188219f79cb5de488137d0681e35ac8cd6 /modules/language/python/def.scm
parent6cb199ed027f0ce56dd2b3f1c94f7edc3a53c026 (diff)
dicts now works almost entirely
Diffstat (limited to 'modules/language/python/def.scm')
-rw-r--r--modules/language/python/def.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/language/python/def.scm b/modules/language/python/def.scm
index a9aa692..bc745f0 100644
--- a/modules/language/python/def.scm
+++ b/modules/language/python/def.scm
@@ -32,6 +32,16 @@
(()
(values (reverse args) kw)))))
+(define hset! hash-set!)
+
+(define (pytonize kw)
+ (hash-fold
+ (lambda (k v h)
+ (hset! h (symbol->string (keyword->symbol k)) v)
+ h)
+ (make-hash-table)
+ kw))
+
(define-syntax lam
(lambda (x)
(define-syntax-rule (mk get-as (k v s) x y z w)
@@ -76,7 +86,8 @@
(lambda (ww* kw)
(let*-values (((ww* k) (take-1 ww* kw s v))
...)
- (let ((ww ww*))
+ (let ((ww ww*)
+ (kw (pytonize kw)))
code ...))))))))))))
(define-syntax-rule (def (f . args) code ...) (define f (lam args code ...)))