[racket-dev] for loops with interleaved escape continuations
Interestingly enough, I tried to explain this idea to the Imperative Advanced Placement crowd in the 1990s. With functional programming -- control from tail-recursive functions -- is more expressive than programming with limited loops because you can (1) break/resume/continue/foobar your 'loops' more easily (including loops that communicate actual values instead of void) and (2) you can write abstractions over these things once you have good use cases.
Now we're in a position to do so and what John & Sam sketch out is finally a realization of this idea.
-- Matthias