summaryrefslogtreecommitdiff
path: root/modules/language/python/list.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-08-03 17:20:07 +0200
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-08-03 17:20:07 +0200
commit85d5763490601299daa660bef455b0eaae8b2560 (patch)
tree3d85991529f9f6f507c329106deb4c17085aa79a /modules/language/python/list.scm
parent9cff626018531a50ab026e28a2354d252957fc2c (diff)
debuggings
Diffstat (limited to 'modules/language/python/list.scm')
-rw-r--r--modules/language/python/list.scm19
1 files changed, 17 insertions, 2 deletions
diff --git a/modules/language/python/list.scm b/modules/language/python/list.scm
index 125a874..5bdf85a 100644
--- a/modules/language/python/list.scm
+++ b/modules/language/python/list.scm
@@ -24,6 +24,20 @@
(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)
@@ -773,8 +787,9 @@
(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))