CPS转换后的管理重新索引究竟是什么?

elj*_*nso 9 scheme continuations language-theory continuation-passing

在Scheme和CPS转换的上下文中,我在确定哪些管理重新索引(lambdas)确实存在时遇到了一些麻烦:

  • CPS转换引入的所有 lambda表达式
  • 只有 CPS转换引入的lambda表达式,但如果您"手动"或通过更智能的CPS转换器进行转换,则不会写入

如果可能的话,欢迎提供良好的参考.

小智 5

Redex代表"可简化表达式",这是一个不是值的表达式.因此,lambda不是redex,而是调用.
在CPS中,管理redex是一个redex,其运算符是continuation lambda.这样的重新索引可以立即减少,因为您知道要调用哪个函数.
例如,((lambda (u) ...) foo)是管理redex,但(k foo)不是.