问题标签 [continuation]

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 投票
0 回答
408 浏览

ruby - 为什么在 Ruby 1.9 中延续是邪恶的?

我在 Ruby 世界中相对较新。我不知道,该怎么想。在“Ruby 编程语言”中,我读到我不应该在新代码中使用 Continuations 而是使用 Fibers。我发现了这个演示文稿(从 2008 年开始)http://www.atdot.net/~ko1/pub/ContinuationFest-ruby.pdf它说 Continations 被破坏了,他们的 Ruby 实现的创建者是罪犯。另一方面,我阅读了一些博客,其中作者对延续感到兴奋,而他们对延续错误并不感到难过。所以我不知道该怎么想。我知道使用 Fibers 而不是 Continuations 更好,但是当 Fibers 不够时该怎么办?我可以使用 Continuations 还是它们坏了(2008 年的演示文稿这么说)?为什么 Matz 将 Continuations 踢到 stdlib?为什么有票,他会把它踢出鲁比?

0 投票
1 回答
458 浏览

playframework - Controller.await(int millis)之后没有重定向的动作链接

我不确定这是否没有按预期工作,这只是我感到困惑。

我想做的是异步延迟一个动作,await(int millis)我似乎可以成为朋友。

这是发生的事情:

1. Application.index显示一个发送 POST 到的表单Application.something

应用程序/控制器/Application.java

应用程序/视图/应用程序/index.html


2. Application.something做它的事,然后链接回index.

应用程序/控制器/Application.java


3. Play 引发应用程序错误:“模板 Application/something.html 不存在”

因此,当在执行被暂停/恢复后被render()调用时,它会尝试渲染 的模板,这当然不存在。Application.indexApplication.somethingApplication.something

如果我删除await(500)一切正常(发出 302index并按预期呈现)。

我可以强制重定向

并得到我想要的结果,但这感觉很难看。

我也可以设置

await按预期在和 作品中的渲染Application.index(实际上是作品中的魔力)之后手动进行Controller.template()


所以基本上,一切都好,我被迫在调用之后使用字符串await而不是方法调用,还是有点不对劲?

干杯,托拜厄斯。

0 投票
6 回答
192357 浏览

python - 语法错误:“python 中的续行字符后出现意外字符”数学

我在创建这个 Python 程序时遇到问题,我正在创建这个程序来做数学、计算等解决方案,但我收到了语法错误:“python 中的行继续符后出现意外字符”

这是我的代码

我的问题是\1.5我试过\1.5但它不起作用

使用 python 2.7.2

0 投票
1 回答
198 浏览

c# - 当阵列中的一个或多个任务被取消或失败时继续?

如果我有一系列任务,Task[]. 如何编写仅在数组中的一个或多个任务失败(或被取消)时运行的延续?

0 投票
1 回答
753 浏览

recursion - SML - 使用延续在 trie 中收集单词

我有一个数据类型 trie = char 的节点 * (trie ref) list | Empty 我想收集 trie 中的所有单词,使用这两个相互递归的函数:

然后用 fun all_entries t = all_words t (fn l => map (fn w => String.implode w) l) 调用它们;

这必须通过延续来完成。我以非延续形式写了它,如下所示:

但我不知道如何将它们转换为延续形式!这是我到目前为止所拥有的,但它不起作用:

我已经坚持了很长时间,我将不胜感激。

0 投票
1 回答
2622 浏览

c# - C# 等待与延续:不完全一样?

在阅读了Eric Lippert 的回答后,我的印象是awaitcall/cc几乎是同一枚硬币的两个方面,最多有句法上的差异。然而,在尝试call/cc在 C# 5 中实际实现时,我遇到了一个问题:要么我误解了 call/cc(这很有可能),要么 await 只是让人想起call/cc。

考虑这样的伪代码:

如果我对 call/cc 的理解是正确的,那么应该打印:

至关重要的是,当调用 continuation 时,程序状态会与调用历史记录一起恢复,从而foo返回到main并且永远不会返回到bar

但是,如果await在 C# 中实现,则调用延续不会恢复此调用历史记录。foo返回bar,并且没有办法(我可以看到)await可用于使正确的通话记录成为延续的一部分。

请解释一下:我完全误解了 的操作call/cc,还是与 的操作await不太一样call/cc


既然我知道了答案,我不得不说有充分的理由认为它们非常相似。考虑一下上面的程序在伪 C#-5 中的样子:

因此,虽然 C# 5 风格从不给我们传递值的延续对象,但总体而言,相似性是相当惊人的。除了这次很明显“After”永远不会被调用,这与 true-call/cc 示例不同,这是喜欢 C# 并赞扬其设计的另一个原因!

0 投票
2 回答
533 浏览

f# - 如何在 F# 中组合状态和延续单子

我正在尝试使用任务并行库对树求和,其中子任务仅在遍历树直到一定深度之前才产生,否则它使用连续传递样式对剩余的子节点求和,以避免堆栈溢出。

然而,代码看起来很丑 - 使用状态单子来携带当前深度会很好,但状态单子不是尾递归的。或者,我将如何修改延续单子以携带状态?或者创建状态和延续单子的组合?

我在这篇博文中有更多细节:http: //taumuon-jabuka.blogspot.co.uk/2012/06/more-playing-with-monads.html

0 投票
7 回答
8102 浏览

objective-c - Objective C - 如何以编程方式停止执行以进行调试,同时允许继续?

当以编程方式指定条件时,我已经成功地让调试版本停止执行,使用目标 C 中的标准 NSAssert(condition_which_should_evaluate_true, @"error message") 语句,并在断点导航器中添加“所有异常”断点。

很好,但是大多数时候我在调试时,我也想在那之后继续正常的程序执行。通常在断言失败后继续程序有助于追踪混淆/错误的来源。至少据我记得当我在不同的平台上编程时。

在 Objective C 开发中是否有这样做的标准方法?

0 投票
5 回答
204 浏览

python - 如何限制 Python 中复杂行的长度?

我正在根据PEP8格式化我的代码,但我有一个小问题;就是这个:

如何将其分成 72-79 个字符的行?

0 投票
1 回答
812 浏览

scheme - 方案:嵌套调用/cc 如何为协程工作?

我正在查看来自http://community.schemewiki.org/?call-with-current-continuation的协程的以下示例:

多余的工作:

对于 call/cc 的第一次使用,上下文应该是什么?当我说上下文时,我的意思是由于 callcc 的跳转,我们应该“返回”到哪里?

据我了解,第一次调用 call/cc 时,do-other-stuff 本质上变成了一个过程,执行多余计算的代码,然后在集合之后立即跳转到该点!(A点)。第二次,它将“跳转到 B 点”行为包裹在“跳转到 A 点并执行上下文,或 A 点之后的任何代码”周围。它是否正确?

如果设置,此代码似乎不起作用!实际发生了。或者是套装!这段代码有必要工作吗?

对正在发生的事情进行可视化表示确实会有所帮助。