【发布时间】:2019-07-28 05:47:42
【问题描述】:
在函数式编程中,延续非常有用,因为延续存储程序计数器和堆栈;可变堆显然不需要保存。
如果您想在 Java、JavaScript 等非函数式编程语言中应用延续怎么办?在这里,如果需要,我们应该保存可变堆以正确恢复程序。我一直在寻找一种可以在这种语言(例如 Java)中使用的技术,例如延续,但我找不到。你知道吗?
【问题讨论】:
-
Continuations 不存储“程序计数器”、“堆栈”或“堆”。它们存储了足够的状态,允许它们从中断的地方继续(因此得名“continuation”)。 Java 等中的 closure 会“关闭”运行所需的可变和不可变数据。因此,它对堆或堆栈一无所知。
-
“不需要可变堆”是什么意思?还有为什么你认为 JavaScript 没有功能?
标签: functional-programming heap-memory continuations