(define cc #f)
(define (complex-judgement) #t)
(define (do-complex-things) "Do complex things and return a string.\n")
(begin (cond ((complex-judgement) (call/cc (lambda(k) (set! cc k))))) (display (do-complex-things)) )
(cond (cc (cc)))
Snippet B:
(define cc #f)
(define (complex-judgement) #t)
(define (do-complex-things) "Do complex things and return a string.\n")
((lambda () (cond ((complex-judgement) (call/cc (lambda(k) (set! cc k))))) (display (do-complex-things)) ))
(cond (cc (cc)))
Snippet C:
(define cc #f)
(define (complex-judgement) #t)
(define (do-complex-things) "Do complex things and return a string.\n")
(cond ((complex-judgement) (call/cc (lambda(k) (set! cc k)))))
(display (do-complex-things))
(cond (cc (cc)))
you can compile all these programs, you can add things to complex-judgement(maybe read an setting file, anything), and you can make do-complex-things do really complex things, but it doesn't matter.