【发布时间】:2012-02-09 13:27:23
【问题描述】:
对延续的概念感兴趣,我开始阅读维基、帖子,并来到这个“简单”的例子:
reset {
...
shift { k: (Int=>Int) => // the continuation k will be the '_ + 1' below
k(7)
} + 1
}
// result: 8
如果不了解 Scala,我完全迷失了,无法弄清楚 8 是如何产生的。
以下是我试图找出含义但失败的方法。哪位大侠可以给我一个简短的解释吗?是的,有 Scala 语法书,但它们太厚了,我对理解定界延续概念比掌握 Scala 语言更感兴趣......
-
(Int=>Int)看起来像一个 C# 委托,输入是 Int,输出是 Int。
-
k: (Int=>Int) => k(7)我迷路了……什么是 k,什么是 (Int=>Int)=>k(7)?
-
shift { k: (Int=>Int) => k(7) } + 1更失落了……
-
reset { ...; shift { k: (Int=>Int) => k(7) } + 1 }越来越迷失了……
【问题讨论】:
-
您可能想看看this question 及其答案。
-
我认为,当您试图理解“不了解 Scala”的非平凡 Scala 代码时,您只会让这项任务变得更加困难。我建议您首先学习该语言的基础知识,例如语法。那里有很多books 和other resources。
-
是的 Matthew,我的线程是 Continuation @ wiki => Delimited Continuation @ wiki(作为示例丢失)=> dcsobral.blogspot.com/2009/07/… => stackoverflow 在这里....但是谢谢你们,现在我得到了它。
标签: scala continuations delimited-continuations