summaryrefslogtreecommitdiff
path: root/modules/language/python/list.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/list.scm')
-rw-r--r--modules/language/python/list.scm17
1 files changed, 11 insertions, 6 deletions
diff --git a/modules/language/python/list.scm b/modules/language/python/list.scm
index 779ed73..1afa56f 100644
--- a/modules/language/python/list.scm
+++ b/modules/language/python/list.scm
@@ -298,6 +298,13 @@
(define-method (+ (o1 <string>) (o2 <string>))
(string-append o1 o2))
+(define-method (+ (o1 <symbol>) (o2 <symbol>))
+ (string->symbol
+ (string-append
+ (symbol->string o1)
+ (symbol->string o2))))
+
+(define-method (* (x <integer>) (o1 <py-list>)) (* o1 x))
(define-method (* (o1 <py-list>) (x <integer>))
(let* ((vec (slot-ref o1 'vec))
(n (slot-ref o1 'n))
@@ -318,6 +325,7 @@
(slot-set! o 'vec vec2)
o))
+(define-method (* (x <integer>) (vec <string>)) (* vec x))
(define-method (* (vec <string>) (x <integer>))
(let* ((n (string-length vec))
(n2 (* n x))
@@ -333,6 +341,7 @@
(lp1 (+ i 1) j)))))
vec2))
+(define-method (* (x <integer>) (l <pair>)) (* l x))
(define-method (* (l <pair>) (x <integer>))
(let lp1 ((i 0))
(if (< i x)
@@ -343,12 +352,6 @@
'())))
-(define-method (+ (o1 <pair>) (o2 <pair>))
- (append o1 o2))
-
-(define-method (+ (o1 <string>) (o2 <string>))
- (string-append o1 o2))
-
;;REVERSE
(define-method (pylist-reverse! (o <py-list>))
(let* ((N (slot-ref o 'n))
@@ -690,6 +693,8 @@
(define pylist list)
+(define-method (py-class (o <py-list>) list))
+
(define (pylist-listing)
(let ((l
(to-pylist