方案编程语言说
事实证明,任何使用 call/cc 的程序都可以在没有 call/cc 的情况下在 CPS 中重写,但可能需要对程序进行全面重写(有时甚至包括系统定义的原语)。
一般的技巧有哪些
将使用
call/cc
的程序转换为使用 CPS 编写的函数的程序反向转换?
方案编程语言说
事实证明,任何使用 call/cc 的程序都可以在没有 call/cc 的情况下在 CPS 中重写,但可能需要对程序进行全面重写(有时甚至包括系统定义的原语)。
一般的技巧有哪些
将使用call/cc
的程序转换为使用 CPS 编写的函数的程序
反向转换?
您可以在http://matt.might.net/articles/cps-conversion/或 Appel 的 Compiling With Continuations 一书中了解如何实现延续传递转换。
逆变换比较困难,实际应用较少,但有一篇关于它的论文:Olivier Danvy 的 Back to Direct Style (1994)