Scala"continuation"只是一种用于定义和使用回调函数的时髦语法吗?

Ale*_*x R 9 language-features programming-languages functional-programming scala scala-2.8

我的意思是,从同样的意义上说,C/Java for只是一个while循环的时髦语法.

我还记得第一次学习forC语言中的循环时,必须深入理解三个控制表达式相对于循环语句的执行顺序.在我看来,同样的努力必须应用于理解Continuations(在Scala中,我猜可能是其他语言).

然后是明显的后续问题......如果是这样,那么重点是什么?似乎很多痛苦(语言复杂性,程序员错误,不可读的程序等)没有任何好处.

hza*_*zap 3

从某种意义上说,是的,延续是使用回调的时髦语法。您可以在代码上手动执行非常复杂的全局转换(所谓的延续传递式转换),并且您将在没有直接语言支持的情况下获得延续。

但是,转换整个代码库可能不太实用,而且生成的代码很难阅读,因此让编译器在幕后为您完成此操作要好得多。