Y Combinator in Schema unter Verwendung definieren
-
11-10-2019 - |
Frage
Um zu erfahren, was ein Festpunkt combinator ist und wird verwendet für, ich meine eigenen geschrieben. Aber anstatt es mit streng anonymen Funktionen zu schreiben, wie Wikipedias Beispiel , ich habe gerade verwendet definieren:
(define combine (lambda (functional)
(functional (lambda args (apply (combine functional) args))))
Ich habe dies für faktorielle und Fibonacci mit Funktionalen getestet, und es scheint zu funktionieren. Enthält diese treffen die formale Definition einer Festpunkt combinator?
Lösung
Die Antwort ist nein, denn nach des genannten Blog in der vorherige Antwort , es nicht einmal die Definition erfüllen von combinator , da 'verbinden' ist eine freie Variable.
Andere Tipps
EDIT:. Während chessweb oder sonst jemand seine Antwort bestätigt, vorübergehend betrachtet seine Antwort richtig und diese falsch
Es scheint, die Antwort ja ist. Anscheinend ist der exakt gleiche combinator erscheint hier , auf halben Weg auf der Seite:
(define Y
(lambda (f)
(f (lambda (x) ((Y f) x)))))