С помощью call / cc .
(define (f)
(call/cc
(lambda (c) (+ (c 0) (c 1)))))
(write (f))
Вызов c внутри любого аргумента в +
приводит к немедленному возврату f
, давая 0 или 1, в зависимости от того, какой аргумент сначала оценивается.
Но я подозреваю, что он всегда будет оценивать слева направо и, следовательно, возвращает 0.