diff options
Diffstat (limited to 'modules/language/python')
-rw-r--r-- | modules/language/python/list.scm | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/language/python/list.scm b/modules/language/python/list.scm index 9517aeb..8514310 100644 --- a/modules/language/python/list.scm +++ b/modules/language/python/list.scm @@ -121,7 +121,7 @@ (vector-ref o n)) (define-method (pylist-ref (o <p>) n) - ((ref o '__listref__) n)) + ((ref o '__getitem__) n)) ;;; SET (define-method (pylist-set! (o <py-list>) nin val) @@ -139,9 +139,12 @@ (vector-set! o n val)) (define-method (pylist-set! (o <p>) n val) - ((ref o '__listset__) n val)) + ((ref o '__setitem__) n val)) ;;SLICE +(define-method (pylist-slice (o <p>) n1 n2 n3) + ((ref o '__getslice__) n1 n2 n3)) + (define-method (pylist-slice (o <py-list>) n1 n2 n3) (define N (slot-ref o 'n)) (define (f n) (if (< n 0) (+ N n) n)) @@ -172,6 +175,9 @@ (pylist-slice (to-pylist o) n1 n2 n3)))) ;;SUBSET +(define-method (pylist-subset! (o <p>) n1 n2 n3 val) + ((ref o '__setslice__) n1 n2 n3 val)) + (define-method (pylist-subset! (o <py-list>) n1 n2 n3 val) (define N (slot-ref o 'n)) (define (f n) (if (< n 0) (+ N n) n)) |