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.scm13
1 files changed, 8 insertions, 5 deletions
diff --git a/modules/language/python/def.scm b/modules/language/python/def.scm
index bd2139e..06e83e6 100644
--- a/modules/language/python/def.scm
+++ b/modules/language/python/def.scm
@@ -108,9 +108,10 @@
(define (no x)
(and-map
(lambda (x)
- (syntax-case x (* **)
- ((* _) #f)
- ((** _) #f)
+ (syntax-case x (* ** =)
+ ((* _) #f)
+ ((** _) #f)
+ ((= a b) #f)
(_ #t)))
x))
@@ -123,7 +124,9 @@
x))))
(define-syntax m*
- (syntax-rules (* **)
+ (syntax-rules (* ** =)
+ ((_ (= a b))
+ (list (symbol->keyword 'a) b))
((_ (* a)) a)
((_ (** kw))
(for ((k v : kw)) ((l '()))
@@ -137,7 +140,7 @@
(syntax-case x ()
((_ f a ...)
(if (no #'(a ...))
- #'(apply f a ...)
+ #'(f a ...)
#'(apply f (let lp ((l (list (m* a) ...)))
(if (pair? l)
(append (car l) (lp (cdr l)))