我似乎无法想出这样的例子,并想知道是否有这种情况?我知道如果我有一个表达式,其中应用订单不会终止,正常的订单可能仍会终止。我想知道是否有一个例子,两个订单都终止但正常订单的步骤更少。
答案 0 :(得分:1)
(λp.λq.q)((λx.λy.λz。((x y)z))(λw.λv.w))
有一些空白:
(λ p.
λ q.
q
)
(
(λ x.
λ y.
λ z.
((x y) z)
)
(λ w.
λ v.
w
)
)
按正常顺序,可以首先执行最外侧的缩减,在一个步骤中直接缩减到识别组合器。应用顺序也会到达,但由于需要首先评估x-y-z-w-v表达式,因此需要更长的时间。
请注意,x-y-z-w-v表达式甚至不是使用。您可以将正常顺序视为一种惰性评估:表达式仅在使用时进行评估或减少。因此,您只需构建一个不使用其中一个参数的公式,并立即获得此类效率获胜的示例。
答案 1 :(得分:0)
在lambda表达式中,抽象中绑定的任何变量都可以在抽象体中使用零次或多次。
比较