debuggings
[software/python-on-guile.git] / modules / language / python / list.scm
index 125a874841e03c092a6d82c14b02f89f29768fbe..5bdf85a3d0a347686f200d7427eb80f43ed5c25f 100644 (file)
 
 (define scm-list list)
 
+(define-method (+ (x <null>) (y <pair>))
+  (let lp ((l y))
+    (if (pair? l)
+       (cons (car l) (lp (cdr l)))
+       '())))
+
+(define-method (+ (x <pair>) (y <null>))
+  (let lp ((l x))
+    (if (pair? l)
+       (cons (car l) (lp (cdr l)))
+       '())))
+
+(define-method (in x (y <null>)) #f)
+
 (define-syntax-rule (aif it p x y) (let ((it p)) (if it x y)))
 
 (define-class <py-list>  () vec n)
        (it)
        (next-method)))
 
-(define-method (in x (l <py-tuple>)) (member x (slot-ref l 'l)))
-(define-method (in x (l <pair>))     (member x l))
+(define (bo x) (if x #t #f))
+(define-method (in x (l <py-tuple>)) (bo (member x (slot-ref l 'l))))
+(define-method (in x (l <pair>))     (bo  (member x l)))
 (define-method (in x (l <vector>))
   (define n (vector-length l))
   (let lp ((i 0))