(set! yield k3) ; now calling yield with val will return val from the call to next
; when the next line is executed, resume will be bound to k2
(set! yield k3) ; now calling yield with val will return val from the call to next
; when the next line is executed, resume will be bound to k2
(set! yield k1) ; now calling yield with val will bind fst to val and continue with the (cond ...) block below
(walk lst)
; the next line will be executed only when lst contains no atoms
(set! yield k1) ; now calling yield with val will bind fst to val and continue with the (cond ...) block below
(walk lst)
; the next line will be executed only when lst contains no atoms