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?

War es hilfreich?

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)))))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top