#lang racket (require racket/trace) (define cont #f) (define fac (lambda (n) (if (eq? n 0) (call/cc (lambda (k) (set! cont k) 1)) (* n (fac (- n 1)))))) (trace fac) (define fac2 (lambda (n) (if (eq? n 0) 1 (if (eq? n 3) (begin (call/cc (lambda (k) (set! cont k))) (* n (fac2 (- n 1)))) (* n (fac2 (- n 1))))))) (trace fac2) ;;; (+ 3 (call/cc (lambda (k) (+ 12 (k 42) 88))) 101)