【问题标题】:Is there a programming language that natively supports delimited continuations?是否存在原生支持分隔延续的编程语言?
【发布时间】:2018-09-28 23:31:10
【问题描述】:

我想知道一种原生支持分隔延续的编程语言。我确实知道 Scala 曾经有 shiftreset,但这些都被删除了;而且我也知道 Seaside 似乎有类似的东西,但是 Seaside 是一个库,据我了解,Smalltalk 不支持分隔延续。

那么,有没有支持这种延续的编程语言?

谢谢!

【问题讨论】:

  • 我投票结束这个问题,因为它是一个投票问题,而不是help center 指南中定义的编程问题。 给我列个清单对于这个网站来说不是一个合适的问题。
  • Racket 和 Haskell 都浮现在脑海中

标签: continuations delimited-continuations


【解决方案1】:

在大多数 Smalltalk 方言中,您可以轻松实现定界延续(或任何其他类型的延续)。由于环境的高度反射性,您可以遍历运行时堆栈并复制和重新实例化执行堆栈的任何部分。事实上,这正是Seaside 正在做的事情。

看看这些蒙蒂塞洛包中实现的不同类型的延续:http://source.lukas-renggli.ch/continuations/Continuation 包包括各种类型的完整和部分延续(重置转移和提示控制风格)的测试和示例。 Generators 包包含生成器的实现。

【讨论】:

    【解决方案2】:

    正如@user633183 所指出的,Racket 有一组极其丰富的延续运算符。它包括移位和重置以及许多其他等效的延续操作集。

    查看文档,位于

    https://docs.racket-lang.org/reference/cont.html?q=racket%2Fcontrol#%28mod-path._racket%2Fcontrol%29

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2019-07-05
      • 2013-10-26
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多