[(atom? (car l)) (begin
(let/cc k2
(set! resume k2) ; now calling resume with val will ignore val
- ; and continue with the second line of (begin ... (walk (cdr l)))
+ ; and continue with the final line of (begin ... (walk (cdr l)))
; when the next line is executed, yield will be bound to k1 or k3
(yield (car l)))
; the previous yield line will never return, but the following line will be executed when resume is called
[else #f])
))))
- (delta '(((a b) ()) (c (d ())))) ; ~~> #f
- (delta '(((a b) ()) (b (d ())))) ; ~~> #t
- (delta '(((a b) ()) (c (d (d))))) ; ~~> #t
+ (delta '(((a b) ()) (c (d ())))) ; ~~> #f
+ (delta '(((a b) ()) (b (d ())))) ; ~~> #t
+ (delta '(((a b) ()) (c (d (d))))) ; ~~> #t
(delta '(((a b c) ()) (c (d ())))) ; ~~> #t
(delta '(((a b) ()) (c (d ()) c))) ; ~~> #f