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

- SharePoint 20XX: Script PowerShell pour exporter en CSV toutes les listes d’une ferme pour auditer le contenu avant migration par Blog Technique de Romelard Fabrice le 03-28-2017, 17:53

- Les pièges de l’installation de Visual Studio 2017 par Blog de Jérémy Jeanson le 03-24-2017, 13:05

- UWP or not UWP sur Visual Studio 2015 ? par Blog de Jérémy Jeanson le 03-08-2017, 19:12

- Désinstallation de .net Core RC1 Update 1 ou SDK de Core 1 Preview 2 par Blog de Jérémy Jeanson le 03-07-2017, 19:29

- Office 365: Ajouter un utilisateur ou groupe dans la liste des Site collection Administrator d’un site SharePoint Online via PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-24-2017, 18:52

- Office 365: Comment créer une document library qui utilise les ContentTypeHub avec PowerShell et CSOM par Blog Technique de Romelard Fabrice le 02-22-2017, 17:06

- [TFS] Supprimer en masse les dépendances à SQL Enterprise ou Developer avant de procéder à une migration par Blog de Jérémy Jeanson le 02-20-2017, 20:30

- Office 365: Attention au volume utilisé par les fichiers de Thèmes de SharePoint Online par Blog Technique de Romelard Fabrice le 02-07-2017, 18:19

- [SCVMM] Supprimer une machine bloquée par Blog de Jérémy Jeanson le 01-31-2017, 21:22

- Microsoft .Net Challenge 2017 par Le Blog (Vert) d'Arnaud JUND le 01-30-2017, 15:25