Ich versuche eine Funktion zu erstellen, die eine bestimmte Anzahl von Argumenten akzeptiert und immer den gleichen Wert zurückgibt.Lambda-Kalkül: Erstellen Sie eine Funktion, die bei jeder Iteration mehr Argumente benötigt
Dies ist ein Teil einer Hausaufgabe. Es gibt einen Hinweis zur Verfügung gestellt ist:
Die "k-Wege-T" ist eine Funktion, die Argumente k und gibt immer T. A "0-Wege-T" nimmt nur T.
Wo k wird als Kirchenzahl angegeben und T ist der Lambda-Ausdruck für True (\ x. \ yx).
Die vollständige Aufgabe besteht darin, einen Lambda-Ausdruck bereitzustellen, der eine k-Wege-ODER-Funktion berechnet. Die Anzahl der 'booleschen' Argumente wird vor den 'booleschen' Argumenten angegeben. z:
((OR 3) F T F)
Aber jetzt k Argumente und kehrt Ich versuche, das braucht immer T zu erstellen. Die k wird als erstes Argument zur Verfügung gestellt.
Also im Grunde möchte ich eine Funktion erstellen, die für jede Kirchenziffer 'Iteration' noch ein Argument hat.
Aber irgendwie bin ich völlig festgefahren.
Kann ich das nur mit einer Kirchenziffer machen? Oder brauche ich Rekursion (Y-Combinator)?
Allgemein: Gibt es gute Tools (z. B. zur Visualisierung), die die Erstellung von Lambda-Ausdrücken unterstützen?
Ich bin wirklich erstaunt über die Kraft des Lambda-Kalküls und ich möchte es wirklich lernen. Aber ich weiß nicht, wie ...
Vielen Dank im Voraus
Vielen Dank! Ich muss es noch herausfinden. Aber ich denke, dass ich mit Ihrer Erklärung fertig werde ... – woodtluk
Fühlen Sie sich frei, Follow-up-Fragen zu stellen ... –
Vielen Dank, ich verstehe jetzt den K-Way TRUE und es geschafft, es zu implementieren. Ich habe mir Scheme angesehen und versucht, dem MIT-Scheme-Kurs zu folgen (es ist etwas alt, aber ich denke, es ist immer noch eine sehr gute Einführung in funktionales Programmieren und CS im Allgemeinen). – woodtluk