使用 Scala 的 Delimited Continuations 实现隐式 Monad
我正在使用某种由单子接口定义的 DSL。 由于使用一堆 flatMap 应用程序来应用 monad 有点麻烦,而且我发现理解语法在语法上并不那么漂亮,所以我尝试…
Haskell Cont monad 如何以及为何工作?
这就是 Cont monad 的定义方式: newtype Cont r a = Cont { runCont :: (a -> r) -> r } instance Monad (Cont r) where return a = Cont ($ a) m >>…
使用“for”实现类似于 C# 的收益的 Scala 实现
我正在尝试使用类似 C# 的收益率返回的各种 Scala 实现(即 thisone) 与 "for" 结构,例如: private def permutations[T](s: Vector[T]) = { def swa…
Haskell CPS 编程风格问题
这是一个使用 CPS 样式将列表中的元素相乘的函数, mlist xx k = aux xx k where aux [] nk = nk 1 aux (0:xs) nk = k 0 aux (x:xs) nk = aux xs $ \v…
(尾)递归函数上的 CPS/Continuations StackOverflowError
有没有办法让 CPS 中的尾递归函数不抛出 StackOverflow? import scala.util.continuations._ object CPSStackOverflow { def main(args: Array[Strin…
Lua 中的 call/cc - 可能吗?
维基百科关于Continuation的文章说: “在任何支持闭包的语言中,都可以以连续传递的方式编写程序并手动实现call/cc。” 要么这是真的,我需要知道如…
如何在 Scala 中启用延续?
问题说明了一切。 (然而,如何访问 shift 和 reset 操作的细节多年来已经发生了变化。旧的博客条目和 Stack Overflow 答案可能包含过时的信息。 ) …
为 CPS 类实现 Seq[T]
拥有 CPS 上下文 (@cps[Unit]) 中的以下类,我将如何实现 Seq 特征? 我是否必须将 Seq 这样的标准特征放在一边,而只在 cps-context 中实现 map、fla…
如何使用 Continuations 拆分和分派异步控制流?
我有一个如下所示的异步控制流: ActorA ! DoA(dataA, callback1, callbackOnErrorA) def callback1() = { ... ActorB ! DoB(dataB, callback2, callb…
延续可以用来替代递归吗?
以下函数针对 n = 5,000 生成“堆栈级别太深 (SystemStackError)” def factorial(n) n == 0 ? 1 : factorial(n -1) * n end 有没有办法使用 Continua…
eclipse中的Scalac命令行参数?
Scala 现在包含了 Continuations 插件(是的),但必须通过将“-P:continuations:enable”传递给 scala 编译器来启用。有没有办法将任意参数传递给 ec…