对延续的概念感兴趣,我开始阅读 wiki、帖子,并来到这个“简单”的例子:
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 }
甚至越来越失落……