From 7ddc6ae87f08cec346a1c5ca234286b5454c64b4 Mon Sep 17 00:00:00 2001 From: Stefan Israelsson Tampe Date: Fri, 6 Oct 2017 12:37:08 +0200 Subject: small fixes --- modules/language/python/range.scm | 55 ++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 27 deletions(-) (limited to 'modules/language/python/range.scm') 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 -- cgit v1.2.3