3 ms·
It should be! e.g. if every function takes a continuation as its final argument, then: call/cc& = \f. \k. f k k Then in f you can invoke the continuation k
by jorkingit 1y ago
It should be! e.g. if every function takes a continuation as its final argument, then:
call/cc& = \f. \k. f k k
Then in f you can invoke the continuation k as many times as you want, but that does involve a whole program transformation to CPS.
- fc417fc802 1y agoMy line of thought had been that doing so doesn't restore execution context. But it dawns on me that without the ability to mutate variables that doesn't have the same relevance. Still, doesn't it throw the de bruijn indexes off? Or am I wrong about that as well? Lambda calculus makes my head hurt.