我很难理解当一个值具有类型 A @cpsParam[B,C]
时到底意味着什么,以及在使用限定的continuations工具时应该给我的值分配哪些形式的类型。
我查看了一些资料:
http://lamp.epfl.ch/~rompf/continuations-icfp09.pdf
http://www.scala-lang.org/node/2096
http://dcsobral.blogspot.com/2009/07/delimited-continuations-explained-in.html
http://blog.richdougherty.com/2009/02/delimited-continuations-in-scala_24.html
但它们并没有给我带来太多直觉。在最后一个链接中,作者试图给出明确的解释,但仍然不够清晰。
这里的A表示计算的输出,也是它的continuation的输入。B表示该continuation的返回类型,C表示其“最终”返回类型——因为shift可以进一步处理返回值并更改其类型。
我不理解“计算输出”,“continuation的返回类型”和“continuation的最终返回类型”之间的区别。它们听起来像是同义词。