Question

Pour apprendre ce qu'est un combinateur point fixe est et est utilisé pour, je l'ai écrit moi-même. Mais au lieu d'écrire avec des fonctions strictement anonymes, comme exemple de Wikipedia , je viens d'utiliser définir:

(define combine (lambda (functional)
                  (functional (lambda args (apply (combine functional) args))))

Je l'ai testé cela avec pour factoriel et Fonctionnelles fibonacci, et il semble fonctionner. Est-ce que cette rencontre la définition formelle d'un combinateur point fixe?

Était-ce utile?

La solution

La réponse est non, car selon le blog mentionné dans la réponse précédente , il ne répond même pas à la définition de Combinator , puisque « combiner » est une variable libre.

Autres conseils

EDIT:. Alors que chessweb ou quelqu'un d'autre sa réponse corrobore, considérez temporairement sa réponse et celle-ci mal


Il semble que la réponse est oui. Apparemment, le même combinateur exacte apparaît , à mi-chemin en bas de la page:

(define Y
    (lambda (f)
      (f (lambda (x) ((Y f) x)))))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top