Qu'est ce qu'un Lambda?
Quelqu'un pourrait-il fournir une bonne description de ce que le Lambda est? Nous avons une balise pour eux et qu'ils sont sur les secrets de C# question, mais je n'ai pas encore trouvé une bonne définition et une explication de ce qu'ils sont en premier lieu.
- Que diriez - Wikipedia du lambda calcul de l'article pour commencer? Alors Wikipedia fonctionnelle de la programmation de l'article comme une suite.
- double possible de qu'est Ce qu'un lambda (fonction)?
- amda expression expliqué ici joliment.
Vous devez vous connecter pour publier un commentaire.
Fermetures, lambdas, et les fonctions anonymes sont pas nécessairement la même chose.
Une fonction anonyme est une fonction qui n'a pas (ou, au moins, besoin) son propre nom.
Une fermeture est une fonction qui peut accéder aux variables qui étaient à sa portée lexicale quand elle a été déclarée, même après qu'ils sont tombés hors de portée. Les fonctions anonymes ne doivent pas nécessairement être des fermetures, mais ils sont dans la plupart des langues et de devenir un peu moins utile quand ils ne sont pas.
Un lambda est.. pas tout à fait aussi bien définis en ce qui concerne l'informatique va. Beaucoup de langues ne sont même pas utiliser le terme; au lieu de cela ils vont tout simplement appeler la fermeture ou à la anon ou d'inventer leur propre terminologie. En LISP, un lambda est juste une fonction anonyme. En Python, un lambda est une fonction anonyme spécifiquement limitée à une seule expression; rien de plus, et vous avez besoin d'un nom de fonction. Les Lambdas sont des fermetures dans les deux langues.
Également appelé les fermetures ou les fonctions anonymes..
J'ai trouvé la meilleure description ici. Fondamentalement, le bloc de code qui peut être passé comme argument à une fonction.
"Lambda" se réfère à la Lambda Calcul ou à une expression lambda. Lambda calcul est simplement une branche de la logique et des mathématiques qui traite des fonctions, et est à la base de langages de programmation fonctionnelle.
~ William Riley-Terre
C'est juste une fonction anonyme déclarées en ligne, la plupart des habituellement confiées à un délégué lorsque vous ne voulez pas écrire un acteur à part entière de la fonction.
Dans des langages comme lisp/scheme, ils sont souvent passés assez généreusement que les paramètres de la fonction, mais l'idiome en C# typiquement trouve lambdas utilisé uniquement pour les paresseux évaluation de fonctions, comme dans linq, ou pour la fabrication de gestion des événements de code un peu terser.
Il n'y a pas une telle chose comme un "lambda" dans la programmation. Cela dépend de la langue, etc.
En bref, normalement un langage 'a λ' utilise le terme pour les fonctions anonymes ou, dans certains cas, les fermetures. Comme si, en Ruby:
En réponse à la réponse à la question précédente:
-La chose importante à propos des fonctions anonymes n'est pas qu'elles ne requièrent un nom.
-Les fermetures sont une notion distincte.
-Un gigantesque article de wikipédia est de ne pas le rendre plus clair.
Voici ma réponse en 3 parties:
1. Un lambda est une fonction qui est aussi une expression. C'est la chose la plus importante.
2. De nombreuses langues qui mettent en œuvre des soi-disant "lambdas" ajouter certains sucre syntaxique pour rendre l'écriture de ces courtes fonctions plus facile et plus rapide, mais ce n'est pas nécessaire.
3. Certaines langues peuvent exiger qu'une lambda a pas d'effets secondaires. Que serait un plus pur lambda dans le sens fonctionnel.
Lorsqu'une fonction est une expression, c'est un "citoyen de première classe" à l'intérieur de la langue. Je peux faire toutes les choses importantes avec elle:
Coupée de wikipédia: http://en.wikipedia.org/wiki/Lambda#Lambda.2C_the_word
Dans les langages de programmation tels que Lisp et Python, lambda est un opérateur utilisé pour désigner les fonctions anonymes ou de fermetures, à la suite de lambda calcul de l'utilisation.