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

- Office 365: Comment créer un jeu de Pages Modernes dans un Modern Site SharePoint Online en utilisant PowerShell depuis un fichier CSV par Blog Technique de Romelard Fabrice le 10-17-2018, 12:50

- Office 365: Comment Utiliser les Modern Pages dans un Site Intranet SharePoint basé sur le Publishing site par Blog Technique de Romelard Fabrice le 10-16-2018, 15:34

- Office 365: Comment changer le nom “Auteur” dans les pages modernes d'un Modern Site SharePoint Online par Blog Technique de Romelard Fabrice le 10-16-2018, 15:07

- Reprise des articles Codes-Sources de 2011 à 2013 par Blog de Jérémy Jeanson le 08-21-2018, 16:08

- Office 365: Modifier les jeux de couleur dans les Thèmes des pages classiques de SharePoint Online par Blog Technique de Romelard Fabrice le 08-08-2018, 17:27

- Office 365: Modifier les jeux de couleur dans les Thèmes des pages modernes de SharePoint Online par Blog Technique de Romelard Fabrice le 07-04-2018, 13:26

- Office 365: Script PowerShell pour fixer le Quota Warning de toutes les collections d’un tenant par Blog Technique de Romelard Fabrice le 07-03-2018, 14:16

- MVP Award 2018-2019 par Blog de Jérémy Jeanson le 07-02-2018, 20:39

- Reprise des articles de 2014 à aujourd’hui par Blog de Jérémy Jeanson le 06-20-2018, 13:00

- Office 365: Comment créer un sous-plan dans Office 365 Planner par Blog Technique de Romelard Fabrice le 06-14-2018, 17:19