Warum sind Lambda-Abstraktionen die einzigen Begriffe, die Werte im nicht typed Lambda-Kalkül sind?

cs.stackexchange https://cs.stackexchange.com/questions/1662

  •  16-10-2019
  •  | 
  •  

Frage

Ich bin verwirrt über die folgende Behauptung: "Die einzigen Werte in der Lambda-Kalkül sind Lambda-Abstraktionen".

Warum sind die anderen Begriffe nicht Werte? Was bedeutet es, dass ein Lambda-Abschnitt ein Wert ist? Das erste, was mir in den Sinn kam, war, dass vielleicht Lambda-Abbindungen die einzigen möglichen normalen Formen sind, aber dies gilt natürlich nicht, z. B. $ ( lambda x. ; X) ; y bis y $.

Kann mich jemand aufklären?

War es hilfreich?

Lösung

Hier gibt es eine Reihe von Dingen:

  • Die Sprache, über die Sie sprechen, hat keine zusätzlichen Datentypen, sonst gibt es andere Arten von Werten.
  • Die Reduktionsstrategie der Sprache reduziert innerhalb von Lambda -Abstraktionen nicht. Sowohl Call-by-Value als auch Call-by-Namen entsprechen diesem. Ansonsten wäre nicht jede Lambda -Abstraktion normal.
  • Man betrachtet geschlossene Ausdrücke im Allgemeinen als Programme, sodass es keine freien Variablen gibt, daher wird das Beispiel nicht berücksichtigt.

Andere Begriffe sind keine Werte, da sie reduziert werden können oder nicht in geschlossenen Programmen erscheinen.

Dass eine Lambda -Abstraktion ein Wert ist, bedeutet, dass sie nicht weiter reduziert werden kann (abhängig von der Reduktionsstrategie).

Für offene Begriffe sind auch Variablen Werte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top