在Scheme和CPS转换的上下文中,我在确定确切的管理redexes(lambdas)时遇到了一些麻烦:

  • 由CPS转换
  • 引入的所有lambda表达式
  • 仅包含CPS转换引入的lambda表达式,但是如果您是“手动”进行转换或通过更智能的CPS转换器
  • 则不会编写该表达式

    如果可能的话,欢迎您提供良好的引用。

    最佳答案

    Redex代表“可归约表达式”,它是一个非值的表达式。因此,lambda不是redex,但调用是。

    在CPS中,管理性redex是其运算符是延续lambda的redex。由于您知道要调用的函数,因此可以立即减少此类redex。
    例如,((lambda (u) ...) foo)是管理性Redex,但(k foo)不是。

    09-20 12:07