summaryrefslogtreecommitdiff
path: root/modules/language/python/module/_python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/module/_python.scm')
-rw-r--r--modules/language/python/module/_python.scm7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/language/python/module/_python.scm b/modules/language/python/module/_python.scm
index 1dd9ff9..2cbd54f 100644
--- a/modules/language/python/module/_python.scm
+++ b/modules/language/python/module/_python.scm
@@ -292,7 +292,12 @@
((x y)
(expt x y))
((x y z)
- (py-mod (expt x y) z))))
+ (if (and (number? y) (integer? y) (>= z 0))
+ (let lp ((s 1) (i 0))
+ (if (< i z)
+ (lp (py-mod (* s y) z) (+ i 1))
+ s))
+ (modulo (expt x y) z)))))
(define-syntax-rule (super . l) (py-super-mac . l))