7

我不明白为什么在无类型的 lambda 演算中允许以下 beta 减少:

(λx.x y) (u v) -> ((u v) y)

具体来说,我无法理解如何将两个参数传递给零件中uv单个参数。为了允许上述情况,我不应该使用柯里化并有两个参数吗?像这样-xλx.x

(λx.(λy.(x y))) (u v)
4

1 回答 1

11

具体来说,我无法理解如何传递两个参数 u 和 v

您没有传递两个参数uv. 您正在传递(u v),这是单个值或术语:u应用于的值v

将此与普通算术进行比较:您可以将函数应用于sin复合术语,例如sin(x + 1)因为x+1表示单个值,即使它是将函数+应用于两个参数x1

于 2011-12-07T14:20:34.503 回答