有興趣,我開始閱讀維基,崗位,來到了這個「簡單」的例子:斯卡拉:分隔延續解釋 - 在連續的概念不
reset {
...
shift { k: (Int=>Int) => // the continuation k will be the '_ + 1' below
k(7)
} + 1
}
// result: 8
沒有斯卡拉的知識,我完全失去了在這裏,無法弄清楚8是如何出來的。
以下是我試圖找出含義但失敗的原因。任何人都可以請給我一個簡短的解釋?是啊有斯卡拉語法書,但他們太粗,我更感興趣的是比主Scala語言的理解分隔延續概念...
(Int=>Int)
看起來像一個C#的委託,輸入數據類型爲int ,輸出是Int。
k: (Int=>Int) => k(7)
我在這裏輸了...什麼是K,什麼是(INT =>強度)=> K(7)?
shift { k: (Int=>Int) => k(7) } + 1
更失落......
reset { ...; shift { k: (Int=>Int) => k(7) } + 1 }
甚至更多的丟失......
你可能想看看[這個問題](http://stackoverflow.com/questions/1512930/what-are-scala-continuations-and-why-use-them)及其答案。 – fotNelton 2012-01-13 10:22:59
我認爲當你試圖理解非Scala代碼「沒有Scala知識」時,你只會讓自己變得更加困難。我建議你先學習語言的基礎知識,如語法。那裏有很多[書籍](http://www.scala-lang.org/node/959)和[其他資源](http://docs.scala-lang.org/)。 – tenshi 2012-01-13 10:33:53
你讀過http://en.wikipedia.org/wiki/Continuations嗎? – 2012-01-13 10:55:47