en lambda calcul (λ x. Λ y λ s λ z. Xs (ysz)) est utilisé pour l'addition de deux chiffres de l'Église comment pouvons-nous expliquer cela, y at-il une bonne ressource le lambda calcul pour la programmation fonctionnelle? votre aide est très appréciéelambda calcul pour la programmation fonctionnelle
Répondre
En fait λ f1. λ f2. λ s. λ z. (f1 s (f2 s z)) calcule l'addition car elle substitue en effet (f2 s z), le nombre représenté par f2, au "zéro" à l'intérieur (f1 s z). Exemple: Prenons deux pour f2, s s z
sous forme développée. f1 est un: s z
. Remplacer ce dernier z
par f2 et vous obtenez s s s z
, le formulaire développé pour trois.
Ce serait plus facile avec un tableau et agiter la main, désolé.
Dans le calcul lambda, vous codez un type de données en fonction des opérations qu'il induit. Par exemple, un booléen est juste une fonction de choix qui prend en entrée deux valeurs a et b et renvoie soit a ou b:
true = \a,b.a false = \a,b.b
Quelle est l'utilisation d'un nombre naturel? Son but principal de calcul est fournir une liaison à l'itération. Ainsi, on code un nombre naturel comme un opérateur qui prend en entrée une fonction f, une valeur x, et itère l'application de f au-dessus de x à n fois:
n = \f,x.f(f(....(f x)...))
avec n occurrences de f.
Maintenant, si vous voulez itérer n + m fois la fonction f à partir de x vous devez commencer à itération n fois, c'est (NFX), puis itérer pour m fois de plus, à partir du résultat précédent, qui est
m f (n f x)
de même, si vous voulez itérer n * m fois que vous devez itérer m fois l'opération de itérer n fois f (comme dans deux boucles imbriquées), qui est
m (n f) x
L'encodage précédent des types de données est plus formellement expliqué dans les termes des constructeurs et des éliminateurs correspondants (ce que l'on appelle le codage Bohm-Berarducci ).
- 1. Modèle de machine pour la programmation fonctionnelle
- 2. Nouveau en programmation fonctionnelle
- 3. Programmation fonctionnelle pour les algorithmes de base
- 4. Bibliothèque de programmation fonctionnelle pour Objective-C
- 5. Haskell - Aide à la programmation fonctionnelle
- 6. Lambda réduction Calcul
- 7. Programmation fonctionnelle, carte Scala et pli gauche
- 8. Recherche sur le calcul Lambda
- 9. Associativité dans le calcul lambda
- 10. Est-ce que la programmation fonctionnelle approche C#?
- 11. question sans importance sur erlang et la programmation fonctionnelle
- 12. Conception pilotée par domaine dans la programmation fonctionnelle?
- 13. Requête sur booléens dans Lambda Calcul
- 14. Programmation fonctionnelle - Implémentation de la numérisation (Somme du préfixe) à l'aide du pli
- 15. Convertir le calcul Python en Haskell/Lambda
- 16. efficacité du modèle de programmation fonctionnelle (spécifique Erlang)
- 17. Quelles sont les meilleures pratiques pour la programmation fonctionnelle et l'interaction avec les bases de données?
- 18. Méthodes d'effets secondaires dans purement langages de programmation fonctionnelle
- 19. la concurrence fonctionnelle
- 20. Dans une programmation fonctionnelle, comment appelleriez-vous ce genre d'opération?
- 21. Utilisation de l'expression lambda dans la programmation pratique
- 22. Si vous utilisez la programmation orientée fonctionnelle, la "non-concordance d'impédance" disparaît-elle?
- 23. Quelle est la différence entre la programmation fonctionnelle, structurée et procédurale?
- 24. Javascript peut implémenter la POO mais Ruby ne peut pas implémenter la programmation fonctionnelle?
- 25. Bon choix pour la structure fonctionnelle pour insertion et recherche-
- 26. Programmation fonctionnelle mieux pour manipuler des listes de données de base de données?
- 27. Chiffres d'église: comment coder zéro dans le calcul lambda?
- 28. Quel est le terme correct pour le modèle de programmation fonctionnelle suivant?
- 29. Existe-t-il des structures algébriques utilisées dans la programmation fonctionnelle autre que monoid?
- 30. Comment soustraire des éléments spécifiques dans une liste en utilisant la programmation fonctionnelle dans Mathematica?
Vérifiez la section "Connexes" sur le côté droit de la page: http://stackoverflow.com/questions/515413/what-are-some-resources-for-learning-lambda-calculus, http: // stackoverflow .com/questions/1051033/lambda-calculus-et-church-numerals-confusion, etc. – Groo