« cons car cdr | Main| MSF : C# OML Data Binding »

Church Numerale

9
Category  
Natürlich kann man alles über die Church Numerale auch in Wikipedia nachlesen
Aber ich will es trotzdem mal in meinen Worten versuchen.
Nehmen wir mal alle natürliche Zahlen größer 0, sozusagen 0, 1, 2, 3,.... usw.
Diese Zahlen kann man ja auch definieren, durch die 0 und dass man immer eine 1 darauf addiert.
Denn:
1 = 0 + 1
2 = 1 + 1
3 = 2 + 1
4 = ......
Man erhält somit alle natürlichen Zahlen größer 0, durch die Definition eines "Startes" (0) und eines Nachfolgers  ("Addition" +1).


In dem Link siehe oben, kann man nachlesen, wie man mittels des Lambda-Kalküls, die natürliche Zahlen größer 0 definieren kann.

Wie sieht nun so eine Implementierung des Lambda-Kalküls in Scheme (oder anderen Programmiersprachen) aus?
Wie wir bei den natürlichen Zahlen gesehen haben, muß die 0 definiert werden und wie man den Nachfolger erhält.

Die Definition der null ist relativ simpel, sie muß als Ergebnis die Identität liefern (mehr mathematisch neutrales Element bei den Funktionen ):
(define null (lambda (x) x))

Die Definition des Nachfolgers succ muß als Ergebnis eine Funktion liefern, welche einen "Funktionsaufruf" mehr hat:
(define (succ n) (lambda (f) (lambda (x) (f ((n f) x)))))

Wenn man die 1 nun als one, wie folgt  definiert:
(define one (lambda (f) (lambda (x) (f x))))

sieht man, dass die one = (succ null) ist.

Die Frage, die man sich stellen könnte, ist welches sind die anderen Programmiersprachen?

Bei allen Programmiersprachen sollte man die "Church Numerale" implementieren können, welche Funktionen / Prozeduren / Methoden als First Class Values oder Elemente erster Klasse sind.
Dies bedeutet:
a) Funktionen können mit Variablen benannt oder Variablen zugewiesen werden
b) Sie können an Funktionen / Prozeduren / Methoden als Parameter übergeben werden
c) Sie können als Ergebnis einer Funktion / Methode geliefert werden
d) Sie können in Datenstrukturen ausgenommen werden

Diese Definition geht zurück auf Christopher Strachey, ich meine abgesehen davon, dass er aus England kommt, scheint er doch einen guten Job gemacht zu haben

Gruß JJR


Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2