summaryrefslogtreecommitdiff
path: root/modules/language/python/def.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/def.scm')
-rw-r--r--modules/language/python/def.scm10
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/language/python/def.scm b/modules/language/python/def.scm
index 7622b7a..b2a8de2 100644
--- a/modules/language/python/def.scm
+++ b/modules/language/python/def.scm
@@ -77,7 +77,7 @@
(define (->kw x) (symbol->keyword (syntax->datum x)))
- (syntax-case x ()
+ (syntax-case x (*)
((_ (arg ...) code ...)
(let* ((as (fold get-as '() #'(arg ...)))
(kw (fold get-kw '() #'(arg ...)))
@@ -143,7 +143,13 @@
(define-syntax py-apply
(lambda (x)
- (syntax-case x ()
+ (syntax-case x (*)
+ ((_ f a ... (* x))
+ (and-map (lambda (x) (symbol? (syntax->datum x))) #'(a ...))
+ #'(if (pair? x)
+ (apply f a ... x)
+ (apply f a ... (to-list x))))
+
((_ f a ...)
(if (no #'(a ...))
#'(f a ...)