是否有状态延续或保存堆延续之类的东西?

Is there something like stateful continuations or continuations with saved heap?

在函数式编程中,延续非常有用,因为延续存储了程序计数器和堆栈;显然不需要可变堆来保存。

如果您想在 Java、JavaScript 等非函数式编程语言中应用延续怎么办?在这里,如果需要,我们应该保存可变堆以正确恢复程序。我一直在寻找一种我们可以在这种语言中使用的类似延续的技术(例如Java),但我找不到它。你知道这件事吗?

我认为典型的延续实现不支持堆的自动跟踪,但这绝对是可以相对容易地添加的东西。

例如Seaside web framework uses continuations to model the flow of displayed components. Since saving the complete heap would be expensive, developers can register which objects they like to track。这是通过在创建延续时创建快照,并在延续继续时恢复对象来实现的。这样可以在使用浏览器中的后退和前进按钮时自动恢复应用程序状态。