Ich habe eine philosophische Frage zum λ-Kalkül.
Wenn Sie λ-Kalkül erforschen, werden Sie überrascht sein, all die Dinge zu sehen, die Sie dort tun können. Sie können Ganzzahlen, arithmetische Operationen, Boolesche Werte, Wenn-Dann-Sonst-Anweisungen, Schleifen, rekursive Funktionen usw. definieren. Ich glaube, dies hat sich als rechnerisch vollständig erwiesen.
Wenn Sie jedoch überlegen, was Sie mit Funktionen in λ-Kalkül tun können, erkennen Sie, dass Sie ihm nur eine Funktion zuführen können und eine andere Funktion zurückgeben. Und dieser Prozess endet nie.
Wie können Sie also ein Ergebnis aus einer Berechnung extrahieren?
Angenommen, das Ergebnis eines Ausdrucks ist eine Funktion f
. Sie möchten überprüfen, ob f
Sie das erwartet haben. Sie können es testen, eine Funktion übernehmen, die Sie kennen, sich darauf bewerben f
und empfangen g
. Um zu überprüfen, ob dies g
korrekt ist, müssen Sie jetzt überprüfen, was g
funktioniert. Und du fängst von vorne an. Wie können Sie also etwas darüber erzählen f
?
Es scheint mir, dass Sie alle Funktionen im λ-Kalkül durch eine einzige Funktion, die Identitätsfunktion I = λx.x
, ersetzen können , und alles funktioniert immer noch wie im λ-Kalkül beschrieben. Die Kirchennummer, 3
wenn sie gegeben ist f
und x
zurückkehrt f(f(f(x)))
. Aber da f
und x
kann nur sein I
, kehrt es zurück I
. I
angewendet auf I
und I
kehrt auch zurück I
. So I
erfüllt die Definition 3
. Die "Booleschen Werte" (λxy.x)
und (λxy.y)
benötigen 2 Argumente, I
und I
beide Booleschen Werte werden zurückgegeben I
. Jedes entspricht der Identität, obwohl sie sich genau nach ihren Definitionen verhalten.
Wie machen Sie den Unterschied? Wie zeigen Sie, dass λ-Kalkül mehr als nur eine einzelne Funktion behandelt?
Gibt es ein Identitätskonzept? Können Sie eine Funktion sofort identifizieren, ohne sie zu bewerten? Ich glaube, es wurde bewiesen, dass es keine Möglichkeit gibt, zwei Funktionen auf Gleichheit zu testen.
Oder geht es beim λ-Kalkül nicht um Funktionen, sondern um die formale Beschreibung dessen, was sie tun? Das würde bedeuten, dass λ-Ausdrücke nicht nur definieren, was die Funktionen tun, sondern auch die Daten sind, die die Funktionen manipulieren. Wenn Sie also schreiben A B
, wenden Sie sich nicht A
an B
, sondern wenden die durch die Zeichenfolge beschriebene Funktion A
auf die formale Definition einer Funktion an, die in der B
Rückgabe einer anderen formalen Definition enthalten ist.
Was ist eigentlich in der λ-Rechnung los? Mit welchen mathematischen Objekten handelt es sich?
Nachverfolgen:
OK, aus der Antwort unten geht hervor, dass es bei der λ-Berechnung nicht so sehr um Funktionen im mathematischen Sinne geht, sondern um die Teilmenge von Funktionen, die als λ-Ausdrücke ausgedrückt werden können. Oder noch mehr über die Manipulation von λ-Ausdrücken.