提问人:Adam Herbst 提问时间:7/8/2023 更新时间:7/8/2023 访问量:42
在惰性 lambda 演算中,“true”是如何计算的?
How does "true" evaluate in the lazy lambda calculus?
问:
在 lambda 演算中,“true”被定义为接受两个参数但返回第一个参数的函数:
true = \x.\y.x
如果你在只给出一个论据后懒惰地评估它会发生什么?
(\x.\y.x a)
在懒惰或急切的情况下,它应该给
\y.a
然而,这是一个甚至不关心它的参数的函数。那么,如果我们懒惰,它真的会解析为 ,甚至没有提供参数吗?或者它仍然需要等待参数,只是如果它碰巧是一个表达式而不是一个简单的值,它就不会费心评估参数?y
a
y
答: 暂无答案
评论
true a
计算结果为 ,而不是(\x.\y.x) a
(\x.\y.x a)