diff options
author | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-08-03 17:20:07 +0200 |
---|---|---|
committer | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-08-03 17:20:07 +0200 |
commit | 85d5763490601299daa660bef455b0eaae8b2560 (patch) | |
tree | 3d85991529f9f6f507c329106deb4c17085aa79a /modules/language/python/list.scm | |
parent | 9cff626018531a50ab026e28a2354d252957fc2c (diff) |
debuggings
Diffstat (limited to 'modules/language/python/list.scm')
-rw-r--r-- | modules/language/python/list.scm | 19 |
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)) |