Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

C# – Mais comment prononcer une lambda expression ?

Mais, comment expliquer oralement un bout de code contenant une lambda expression ?

Prenons un exemple, comment dites-vous les lignes de code suivantes ?

IEnumerable<String> values = new String[] { "a", "ab", "bc", "cd" };
values = values.Where(value => value.StartsWith("a")); 

La lambda expression correspond à “value => value.StartsWith("a")”. 

Actuellement, je lis la 2ème ligne du premier bout code ainsi : “values égale  values point where value   lambda   value point StartsWith a”. (Je sépare les temps de pause par plusieurs espaces)

S’il y a plusieurs arguments et des accolades, par exemple :

values = values.Where((value, i) =>
    {
        if (value.StartsWith("a"))
            return true; 
        else 
            return false; 
    });

Alors je lis “values  égale  values point where value virgule i   lambda   entre accolade if value point startswith a   return true   else   return false”

Autant, pour les personnes qui connaissent bien le mécanisme sous-jacent, cela reste compréhensible. Pour les débutants qui ne connaissent pas les lambda expressions, la façon dont on lit ce code n’est pas explicite. J’ai donc cherché d’autres possibilités.

Tout d’abord, revoyons à quoi correspond une lambda expression. Le bout de code ci-dessus est équivalent au code suivant :

IEnumerable<String> values = new String[] { "a", "ab", "bc", "cd" };
Func<String, Boolean> fnc = new Func<String, Boolean>(delegate(String value) { return value.StartsWith("a"); }); 
values = values.Where(fnc);

Qui lui-même est équivalent au code suivant :

public static void Main(String[] args)
{
    IEnumerable<String> values = new String[] { "a", "ab", "bc", "cd" };
Func<String, Boolean> fnc = new Func<String, Boolean>(StartsWithA); values = values.Where(fnc); } private static Boolean StartsWithA(String value) { return value.StartsWith("a"); }

Une lambda expression est donc un sucre syntaxique : cela permet de simplifier l’écriture du code. Une lambda expression est un moyen d’envoyer du code à une autre méthode. Malgré ce retour aux origines, cela ne m’a pas permis de trouver une autre façon de lire une lambda expression.

J’ai donc cherché sur le net les réflexions d’autres personnes. J’ai trouvé plusieurs liens traitant de ce sujet. Voici comment certains lisent le => d’une lambda expression:

Après réflexion, tout dépend du contexte.

Pour les personnes connaissant bien le mécanisme des lambda expressions, je vais lire => “lambda”.

Lorsque je parlerais à un débutant, je vais utiliser des verbes décrivant l’action. Parmi ces verbes, “devient” pour une projection, “tel que” pour une condition ou encore “conduit à” dans les autres cas.

Pour les débutants ne connaissant pas du tout les lambda expressions, je vais le lire ainsi “point where lambda avec en entrée [String] value   [int] i   et [int] j    [entre accolade] value point StartsWith en fonction". J’ai mis la prononciation des types entre crochet, je les prononcerais en fonction de la facilité avec laquelle la personne pour qui l’on explique le code sera capable d’inférer les types.

Et vous ? Comment prononcez-vous une lambda expression ?

Posted: jeudi 14 juillet 2011 23:46 par cyril
Classé sous : ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Graveen a dit :

'tel que' dans la mesure du possible, mais sinon en général j'explilque rapidement le principe des lambdas et rentre trés peu souvent dans la lecture de code, en lui préférant une abstraction fonctionnelle.

Si je rentre dans la lecture de code, c'est pour le partager, donc avec des personnes qui connaissent la syntaxe, et on finit par 'cette lamdba qui sélectionne...'

# juillet 15, 2011 09:11

Matthieu MEZIL a dit :

Perso je dis "donne"

"value donne value point startswith a"

# juillet 15, 2011 10:06

Jem a dit :

Je trouve pas mal le "wang". Il n'y a qu'a le traduire en français "zizi" ou "bistouquette". :)

# juillet 15, 2011 18:37

Jem a dit :

Et sinon, un vieux prof d'info au lycée m'a donné l'habitude de dire "reçoit" et pas "égal" pour l'affectation.

# juillet 15, 2011 18:38

D4rkTiger a dit :

Je traduirais

values = values.Where(value =&gt; value.StartsWith("a"));

de cette façon

"Cette expression lambda prend les valeurs du tableau 'values' dont la première lettre commence par 'a'"

Il ne faut pas chercher 'midi à 14h' ^^. La réelle signification se trouve directement dans les filtres que l'on applique dans l'expression lambda.

Enfin à mon sens.

# octobre 26, 2011 11:47
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

- [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

- Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

- [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

- [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25

- [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

- Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

- Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31

- [ #Yammer ] How to change interface language ? Comment changer la langue de l’interface ? par Le blog de Patrick [MVP SharePoint] le 08-20-2014, 14:21