在Scheme和CPS转换的上下文中,我在确定确切的管理redexes(lambdas)时遇到了一些麻烦:
如果可能的话,欢迎您提供良好的引用。
最佳答案
Redex代表“可归约表达式”,它是一个非值的表达式。因此,lambda不是redex,但调用是。
在CPS中,管理性redex是其运算符是延续lambda的redex。由于您知道要调用的函数,因此可以立即减少此类redex。
例如,((lambda (u) ...) foo)
是管理性Redex,但(k foo)
不是。
在Scheme和CPS转换的上下文中,我在确定确切的管理redexes(lambdas)时遇到了一些麻烦:
最佳答案
Redex代表“可归约表达式”,它是一个非值的表达式。因此,lambda不是redex,但调用是。
在CPS中,管理性redex是其运算符是延续lambda的redex。由于您知道要调用的函数,因此可以立即减少此类redex。
例如,((lambda (u) ...) foo)
是管理性Redex,但(k foo)
不是。