cost 364 ms
在 JS 中将 call/comp 转换为等效的 CPS 样式 - Translating call/comp to equivalent CPS style in JS

我已经阅读了很多关于如何将 call/cc 转换为等效的 CPS 样式的文章,并且已经了解了基本知识,但目前我不明白球拍如何通过 call/comp 执行转换(又名 call-with-composable-continuation)并卡住了这里。 我首先做的是尝试翻译这段代码:#lang rack ...

提前退出递归过程 - early exiting a recursive procedure

观看此视频 (11:56) 它显示了将列表中包含的数字相乘的递归过程这个想法是,如果列表包含零,则可以丢弃整个递归调用堆栈并返回 0 所以为了节省一些乘法它通过提前退出带有定界延续的过程来实现我想在 Guile 方案中重现它,我写了这段代码 它正确地相乘,但如果我传递一个包含零的列表并跟踪这样的调用 ...

如何提取定界延续(重置/移位)以供将来在 Haskell 中使用? - How to extract delimited continuation (reset/shift) for future use in Haskell?

以下是使用定界延续(重置/移位)的简单示例: 它运作良好。 但是,我想将延续k提取为纯 function 以供将来使用,而不仅仅是在 shift 中调用它。 例如,我希望test2可以返回k : 但 GHC 抱怨: 任何人都可以帮助我解决这个问题吗? 谢谢。 ...

Prolog `shift`/`reset` 与其他语言有何不同? - How is Prolog `shift`/`reset` like other languages?

我在这里找到了 Haskell 中的移位重置分隔延续的示例: 这将: 执行alfa bravo 执行charlie 将x绑定到 1,从而执行zulu 1 从resetT的末尾掉下来,然后跳回到esc 1之后执行delta 将x绑定到 2,从而执行zulu 2 从resetT的末尾掉下来,然后跳回 ...

处理程序控制堆栈框架如何在 Koka 中相对放置? - How handler control stackframes are placed relative to each other in Koka?

我在这里有一个以下的 Koka 片段,我希望有人能解释调用处理程序时堆栈框架会发生什么。 我试图通过打印值和全局计数器使处理程序堆栈帧也可见,并且我在表达时脱糖了。 结果如下: 两个“FOO_CTRL”处理程序帧现在如何位于原始 FN() 调用和 RET 处理程序之下? ...

在 JavaScript 中实现分隔的延续 monad - `reset` 幂等性错误 - Implementing the delimited continuation monad in JavaScript - `reset` idempotence bug

这是困难的一个。 我一直在尝试编写各种 monad,这是我在任何地方都找不到简洁示例的唯一一个,因此我尝试使用此测试套件(JS) 和此问题(Agda) 作为参考编写自己的shift和reset . 特别是, 我遇到的问题是,当我通过多个reset测试中止时,我的实现失败了: // ...

Raku(do) 所依赖的延续的具体细节是什么? - What are the specifics about the continuations upon which Raku(do) relies?

在 1990 年代和 2000 年代,编程语言爱好者几乎没有讨论过定界延续的话题。 它最近重新成为编程语言讨论中的重要内容。 我希望有人至少可以权威地说明 Rakudo 的延续(与 Raku 相比)是否具有下面列出的六个特征中的每一个。 我多说一点关于列表之后我希望得到的那种答案。 从在线消息[1 ...

如何只用纯函数表达定界的延续? - How to express delimited continuations with pure functions only?

我研究了Oleg的定界延续教程 : 由于延续基本上是功能,而reset / shift甚至都不是monad api的一部分,我想知道如何在没有newtype和monad机制的情况下实现定界的延续。 到目前为止,这是我想出的: 我很确定这是错误的,如果不是,我不知道如何正确应 ...

是否有一种原生支持分隔延续的编程语言? - Is there a programming language that natively supports delimited continuations?

我想知道一种原生支持分隔延续的编程语言。 我知道Scala曾经有过shift和reset ,但是那些被删除了; 而且我也知道Seaside似乎有类似的东西,但Seaside是一个图书馆,据我所知,Smalltalk不支持分隔的延续。 那么,是否有支持这种延续的编程语言? 谢谢! ...

`get`如何在State monad的CPS版本中工作? - How does `get` work in the CPS version of the State monad?

我试图在本教程后继续理解延续。 但是,我很难理解2.10节中的以下示例: 我认为state是int类型。 我没有得到的是k的类型。 根据我的理解, k捕获随后在get ()之后的所有计算,并且因为我们讨论的是状态monad,所以k是合理的,表示将通过取一个int继续的计算,因此 ...

Cont monad shift - Cont monad shift

在尝试为ContT monad变换器构建一些直觉时,我(也许不出所料)发现自己很困惑。 问题在于shiftT操作似乎没有做任何有用的事情。 首先是一个如何使用它的简单例子 famr a可能是一些更复杂的表达,只要它返回一些mr 。 现在试图解释我对shiftT的直觉并没有增加任 ...

了解 Racket 中的移位/重置 - Understanding shift/reset in Racket

我在球拍中展示了foldr两个幼稚的实现 第一个缺少适当的尾调用并且对于xs大值是有问题的 第二个使用带有延续的辅助函数来实现适当的尾调用,使其可安全地用于较大的xs值 看着racket/control我看到球拍支持一流的延续。 我想知道使用shift和reset表达foldr的第二个实现是 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM