diff options
author | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2017-10-06 12:37:08 +0200 |
---|---|---|
committer | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2017-10-06 12:37:08 +0200 |
commit | 7ddc6ae87f08cec346a1c5ca234286b5454c64b4 (patch) | |
tree | 64eac37bf570e5f63f505fcd4628b338dae1744f /modules/language/python/range.scm | |
parent | 40bdb5e60820bd559eaed121d77bbb6972a68ea2 (diff) |
small fixes
Diffstat (limited to 'modules/language/python/range.scm')
-rw-r--r-- | modules/language/python/range.scm | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/modules/language/python/range.scm b/modules/language/python/range.scm index 675d45a..154e615 100644 --- a/modules/language/python/range.scm +++ b/modules/language/python/range.scm @@ -8,35 +8,36 @@ #:export (range)) (define-python-class range () - (define _a 0) - (define _b 0) - (define _c 1) - (define __init__ (case-lambda - ((self n) - (let ((n (py-index n))) - (set self '_b (max 0 n)))) - ((self n m) - (let ((n (py-index n)) - (m (py-index m))) - (set self '_a m) - (set self '_b (max m n)))) - ((self n m k) - (let ((n (py-index n)) - (m (py-index m)) - (k (py-index k))) - (cond - ((= k 0) - (raise TypeError "range does not allow 0 as a step")) - ((> k 0) - (set self '_a n) - (set self '_b (if (< m n) n m)) - (set self '_c k)) - ((< k 0) - (set self '_a n) - (set self '_b (if (> m n) n m)) - (set self '_c k))))))) + ((self n) + (let ((n (py-index n))) + (set self '_a 0) + (set self '_b (max 0 n)) + (set self '_c 1))) + + ((self n m) + (let ((n (py-index n)) + (m (py-index m))) + (set self '_a n) + (set self '_b (max m n)) + (set self '_c 1))) + + ((self n m k) + (let ((n (py-index n)) + (m (py-index m)) + (k (py-index k))) + (cond + ((= k 0) + (raise TypeError "range does not allow 0 as a step")) + ((> k 0) + (set self '_a n) + (set self '_b (if (< m n) n m)) + (set self '_c k)) + ((< k 0) + (set self '_a n) + (set self '_b (if (> m n) n m)) + (set self '_c k))))))) (define __iter__ (make-generator range |