(+ 1 (let/cc k (k 10))) (let/cc esc (+ 1 (esc 10))) (+ 3 (let/cc esc (+ 1 (esc 10)))) (let/cc k k) (let/cc esc (+ 1 (let/cc k (esc k)))) ; An error: ; ((let/cc esc (esc2 (+ 1 (let/cc k (esc k))))) 12) (let/cc esc2 ((let/cc esc (esc2 (+ 1 (let/cc k (esc k))))) 12)) ((let/cc esc (lambda (x) (+ 1 (let/cc k (esc k))))) 12) ;; A fun text case for KCFAE, produces 6: #; {{fun {mk-list} {{fun {list} ; list has 2 numbers and k; ; is first zero? {if0 {list 0} ; return second: {list 1} ; else recur... {0 ; <- never actually applied! ; recur by jumping to k: {{list 2} {{{mk-list {- {list 0} 1}} ; -1 to first {+ {list 1} 2}} ; +2 to second {list 2}}}}}} ; keep k as third {withcc k ; make list with 2 numbers and k {{{mk-list 3} 0} k}}}} ; mk-list - represent a list of 3 items as a function, where ; the function argument is a selector {fun {a} {fun {b} {fun {c} {fun {sel} {if0 sel a {if0 {- sel 1} b c}}}}}}}