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

- Server Essentials 2016 et site remote web access indisponible par Blog de Jérémy Jeanson le 12-09-2016, 13:10

- Office 365: Utiliser les alertes dans SharePoint Online par Blog Technique de Romelard Fabrice le 11-30-2016, 12:45

- Windows: Comment comparer les outils de copie de fichiers disponibles en mode console avec un script PowerShell par Blog Technique de Romelard Fabrice le 11-18-2016, 11:17

- TFS 2017 est disponible ! par Blog de Jérémy Jeanson le 11-17-2016, 08:04

- Office 365: Configurer l’ouverture des fichiers dans Office Web Apps pour une Librarie Documentaire par Blog Technique de Romelard Fabrice le 11-15-2016, 17:14

- Office 365: Comment gérer les Access Requests dans les sites SharePoint Online par Blog Technique de Romelard Fabrice le 11-10-2016, 15:11

- Windows 2008 R2: Réduire la taille du répertoire system volume information par Blog Technique de Romelard Fabrice le 11-07-2016, 10:01

- UWP et langues indisponibles ? par Blog de Jérémy Jeanson le 11-04-2016, 12:54

- Impossible de se connecter à Windows Server Essentials 2016 par Blog de Jérémy Jeanson le 10-29-2016, 09:55

- Changer la langue d’un Windws Server Core 2016 par Blog de Jérémy Jeanson le 10-27-2016, 17:51