在惰性 lambda 演算中,“true”是如何计算的?

How does "true" evaluate in the lazy lambda calculus?

提问人:Adam Herbst 提问时间:7/8/2023 更新时间:7/8/2023 访问量:42

问:

在 lambda 演算中,“true”被定义为接受两个参数但返回第一个参数的函数:

true = \x.\y.x

如果你在只给出一个论据后懒惰地评估它会发生什么?

(\x.\y.x a)

在懒惰或急切的情况下,它应该给

\y.a

然而,这是一个甚至不关心它的参数的函数。那么,如果我们懒惰,它真的会解析为 ,甚至没有提供参数吗?或者它仍然需要等待参数,只是如果它碰巧是一个表达式而不是一个简单的值,它就不会费心评估参数?yay

函数编程 延迟计算 lambda-calculus

评论

0赞 Bergi 7/8/2023
true a计算结果为 ,而不是(\x.\y.x) a(\x.\y.x a)
0赞 Bergi 7/8/2023
"它是否仍然需要等待论点,只是它不费心评估论点?- 是的,正是这样。

答: 暂无答案