summaryrefslogtreecommitdiff
path: root/modules/language/python/module/_python.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-08-29 21:05:37 +0200
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-08-29 21:05:37 +0200
commit3d44139af1b65ec71abafec939b5240d3821490b (patch)
tree5206b8a818456b3ec0c740cf14d25d8351c77c28 /modules/language/python/module/_python.scm
parent9bd339b34f09f5b582cb8b77a11841f5de9ab695 (diff)
shutil.py
Diffstat (limited to 'modules/language/python/module/_python.scm')
-rw-r--r--modules/language/python/module/_python.scm34
1 files changed, 30 insertions, 4 deletions
diff --git a/modules/language/python/module/_python.scm b/modules/language/python/module/_python.scm
index 149946e..b8c5118 100644
--- a/modules/language/python/module/_python.scm
+++ b/modules/language/python/module/_python.scm
@@ -249,7 +249,22 @@
(define (idx x) x)
-(def (py-min (* l) (= key idx) (= default miss))
+
+(define-syntax min
+ (lambda (x)
+ (syntax-case x ()
+ ((_ x y)
+ #'(if (and (number? x) (number? y))
+ (if (<= x y) x y)
+ (py-min- x y)))
+
+ ((_ l ...)
+ #'(if (and (number? l) ...)
+ ((@ (guile) min) l ...)
+ (py-min- l ...)))
+ (_ #'py-min-))))
+
+(def (py-min- (* l) (= key idx) (= default miss))
(let lp ((l l))
(match l
((it)
@@ -269,7 +284,20 @@
b)))
(_ (lp ((@ (guile) list) l))))))
-(def (py-max (* l) (= key idx) (= default miss))
+(define-syntax max
+ (lambda (x)
+ (syntax-case x ()
+ ((_ x y)
+ #'(if (and (number? x) (number? y))
+ (if (>= x y) x y)
+ (py-max- x y)))
+ ((_ l ...)
+ #'(if (and (number? l) ...)
+ ((@ (guile) max) l ...)
+ (py-max- l ...)))
+ (_ #'py-max-))))
+
+(def (py-max- (* l) (= key idx) (= default miss))
(let lp ((l l))
(match l
((it)
@@ -303,8 +331,6 @@
(define-syntax-rule (super . l) (py-super-mac . l))
-(define min py-min)
-(define max py-max)
(define list pylist)
(define reversed py-reversed)
(define (key-id x) x)