左边部分没有抽象的应用是什么意思?

时间:2012-10-06 16:39:42

标签: math lambda-calculus

Lambda term可以是:

  • 可变
  • lambda抽象(例如\x.t
  • 应用。如果tslambda terms,那么ts就是一个应用。

因此,左侧部分的抽象应用程序(例如(\x.t)a)看起来不错。它看起来像函数调用。但是当左侧部分是变量或其他应用程序时,应用程序意味着什么?如果ab((\x.x)a)b是变量,那么a(\x.x)ab是什么意思?

1 个答案:

答案 0 :(得分:1)

((\x.x)b)c是一个函数应用程序。此处它将b应用于c

((\x.x)b)c
= bc

a(\x.y)是一个函数应用程序,将函数a应用于其唯一的参数,该参数恰好是一个函数,即返回y(自由变量)的函数。 / p>

lamdba演算的一个特点是函数可以轻松应用于函数,函数可以将其他函数作为参数。你的两个例子很好地展示了两种情况。

编辑有(至少)两个版本的lambda演算:无类型和类型。在你在这里使用的无类型微积分中,任何东西都可以应用于任何东西。在类型化的微积分中存在基类型,它们不是函数,例如命题的类型和“个体”的类型。因此,如果ab的类型是将a的类型映射到某事物的函数类型,那么您只能编写b