gpt4 book ai didi

language-agnostic - 定界和非定界延续之间的区别

转载 作者:行者123 更新时间:2023-12-04 06:47:17 27 4
gpt4 key购买 nike

我猜 delimited 之间的区别和 undelimited延续就像 call 之间的区别和 jump .

如果我们调用 delimited continuation 它将在完成后返回给调用者。如果我们调用 undelimited继续它的工作原理就像 goto并且永远不会返回给调用者。

是否有意义?我错过了什么吗?

最佳答案

你有点跑题了。任何一种风格的延续都与 goto 没有太大关系。 (跳跃)。然而,它们与堆栈有关。

经典续作

请记住,常规延续将控制堆栈的概念捕获为第一类值。堆栈可以命名,作为参数传递,值可以应用于它们,产生控制流的变化,使用基于函数应用程序的简单 API,通过 callCC .

定界续行

带分隔符的延续会增加什么?

回想一下,常规延续捕获整个调用堆栈直到某个点。如果我们可以在其中放置标记来说明要在延续中准确捕获多少控制堆栈会怎样?一种控制堆栈的“定界”。

这就是想法,现在您拥有超酷的定界延续:定界、捕获和操作程序的任意部分,作为一个值。非常适合恢复和增量处理,以及其他棘手的控制流形式。

引用

  • 常规,"undelimited" continuations.
  • Delimited continuations.
  • Oleg 的论文 delimited control
  • PFPL ,ch33。

  • 笔记

    来自 Oleg Kiselyov 的一些更正, 收到名单外:
  • 延续和跳转是密切相关的,延续的第一个发现是在试图理解跳转或转到的语义的上下文中。兰丁的J运算符正是为此目的而引入的; J 是 call/cc 的前身。见 An Introduction to Landin’s“A Generalization of Jumps and Labels”
  • 进一步阅读 undelimited, "regular" continuations ,在“无界延续是共同值(value)而不是功能”,以及它们的基础。
  • 关于language-agnostic - 定界和非定界延续之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058959/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com