我对以下主张感到困惑:“未型lambda演算中的唯一值是lambda-abrestions”。

为什么其他术语不是值? lambda-abstraction是一个值是什么意思?我想到的第一件事是,也许lambda-abrestions是唯一可能的正常形式,但这当然不是正确的,例如$( lambdax。; x); y y to y $。

有人可以启发我吗?

有帮助吗?

解决方案

这里有很多事情发生:

  • 您所谈论的语言没有其他数据类型,否则会有其他类型的值。
  • 该语言的减少策略不会减少lambda抽象的内部。逐个通话和逐个名称都符合这一点。否则,并非每个Lambda抽象都是正常的。
  • 一个通常将封闭的表达式视为程序,因此没有自由变量,因此不考虑您提出的示例。

其他术语不是值,因为它们可以减少或不会出现在封闭的程序中。

lambda抽象是一个值,意味着它不能进一步降低(取决于减少策略)。

对于开放术语,变量也是值。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top