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 ++++++++++++++++++++------------------- modules/language/python/set.scm | 14 +++------- 2 files changed, 32 insertions(+), 37 deletions(-) (limited to 'modules/language') 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 diff --git a/modules/language/python/set.scm b/modules/language/python/set.scm index f0e2956..d69b7c9 100644 --- a/modules/language/python/set.scm +++ b/modules/language/python/set.scm @@ -20,16 +20,10 @@ (slot-set! self 'dict (make-py-hashtable))) ((self x) (let ((d (make-py-hashtable))) - (slot-set! self 'dict (make-py-hashtable)) - (cond - ((or (is-a? x ) (pair? x) (string? x)) - (for ((y : x)) () - (pylist-set! d y #t))) - ((is-a? x ) - (slot-set! self 'dict x)) - (else - (raise TypeError))))))) - + (slot-set! self 'dict d) + (for ((y : x)) () + (pylist-set! d y #t)))))) + (define pop (lambda (self) (call-with-values (lambda () (pylist-pop! (slot-ref self 'dict))) -- cgit v1.2.3