diff options
Diffstat (limited to 'modules/language/python/def.scm')
-rw-r--r-- | modules/language/python/def.scm | 13 |
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))) |