i looked up the racket docs to understand shift/ reset, and stumbled upon a litany of control structures. One is prompt/control, which has almost the same reduction rule..
(prompt E[(control k expr)]) => (prompt ((lambda (k) expr)
(lambda (v) (E[v]))))
the last reset is the difference, but it seemingly makes no difference, they are interchangeable.
the last reset is the difference, but it seemingly makes no difference, they are interchangeable.