问题标签 [continuation-passing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
652 浏览

scheme - CPS 转换后的行政重述究竟是什么?

在 Scheme 和CPS转换的上下文中,我在确定管理redexes (lambdas) 到底是什么时遇到了一些麻烦:

  • CPS 转换引入的所有lambda 表达式
  • 只有CPS 转换引入的 lambda 表达式,但如果您“手动”或通过更智能的 CPS 转换器进行转换,您就不会编写

如果可能,欢迎提供良好的参考。

0 投票
1 回答
342 浏览

scala - 嵌套 CPS “重置”

使用 Scala 2.8 的 CPS 编译器插件,有两个魔术控件resetshift. 重置界定延续,移位捕捉延续。

有一个使用 CPS 和 NIO 的例子,使用嵌套重置作为一种“分叉”......?我不完全理解嵌套重置的目的,有什么作用?

0 投票
4 回答
440 浏览

mapreduce - MapReduce 是延续传递风格 (CPS) 的一种形式吗?

正如标题所说。我正在阅读另一种语言极客:延续传递风格,我有点想知道 MapReduce 是否可以归类为延续传递风格的一种形式,即 CPS。

我也想知道 CPS 如何利用多台计算机来执行复杂的计算。也许 CPS 可以更轻松地使用Actor 模型

0 投票
4 回答
6248 浏览

recursion - Ocaml 延续传球风格

我是 ocaml 的新手,并尝试编写一个延续传递样式函数,但很困惑我需要将什么值传递给 k 的附加参数

例如,我可以编写一个递归函数,如果列表的所有元素都是偶数,则返回 true,否则返回 false。

所以它就像

在 CPS 上,我知道我需要添加一个参数来传递函数,比如

但我不知道如何处理这个 k 以及这到底是如何工作的

例如对于这个偶函数,环境看起来像

0 投票
1 回答
1306 浏览

lisp - 是否可以仅使用 LISP 原语来实现协程?

首先,我是 LISP 新手。

我想要的是一个协作的微线程特性。这可以通过协程获得。据我所知,Scheme 通过延续支持协程。然而,并不是所有的方案实施都可能有延续。如果是这样,我可以添加仅具有 LISP 原语的延续功能吗?

0 投票
3 回答
3021 浏览

c# - c# 5.0 中新的异步特性如何用 call/cc 来实现?

我一直在关注有关asyncc# 5.0 中新功能的新公告。我对延续传递风格和新的 c# 编译器对代码的转换有基本的了解,就像Eric Lippert 的帖子中的这段代码:

我知道有些语言通过 call-with-current-continuation ( callcc) 原生地实现了延续,但我并不真正理解它是如何工作的或它究竟做了什么。

所以这里的问题是:如果安德斯等人。决定咬紧牙关,只callcc在 c# 5.0 中实现而不是async/await特殊情况,上面的代码片段会是什么样子?

0 投票
1 回答
157 浏览

functional-programming - 是否有用于重写 CPS 的宏?

例如我有两个异步方法

但我想写类似的东西

0 投票
3 回答
1329 浏览

haskell - 咖喱语言的 CPS

像 lambda calculus 或 Ocaml 这样的柯里化语言中的CPS有什么意义?从技术上讲,所有函数都有一个参数。假设我们有一个 CPS 版本的加法,用一种这样的语言:

我们称之为

这与以下内容相同:

我已经看到那里有两个不是尾调用的调用,实际上是一个复杂嵌套的表达式,它(cps-add random-continuation)返回一个值,即一个消耗一个数字的函数,然后返回一个消耗另一个数字的函数,然后将两者的总和传递给那个random-continuation。但是我们不能通过简单地将它再次转换为 CPS 来解决这个返回值,因为我们只能给每个函数一个参数。我们需要至少有两个来为延续和“实际”论证腾出空间。

还是我完全错过了什么?

0 投票
4 回答
6103 浏览

functional-programming - 延续传球风格与单子

延续传递风格(cps)和单子有什么区别。

0 投票
1 回答
985 浏览

scheme - 计划中的延续传递风格?

我在 Wikipedia 上遇到了这段代码:

文章说该代码是另一段代码的继续传递版本:

但是,我很困惑:这甚至是如何工作的?你如何在这里将一个数字乘以一个 lambda?(* x x (lambda ...))