158 votes

Comment prononcer le mot "=>" utilisé dans les expressions lambda en .Net ?

Je rencontre très rarement d'autres programmeurs !

Quand j'ai vu le jeton pour la première fois, j'ai pensé "implique que", puisque c'est ainsi qu'il serait lu dans une preuve mathématique, mais ce n'est clairement pas son sens.

Alors comment dire ou lire "=>" comme dans:-

IEnumerable<Person> Adults = people.Where(p => p.Age > 16)

Y a-t-il même une façon commune de le dire ?

0 votes

J'ai toujours tendance à prononcer is "implique" comme l'opérateur de même apparence en logique.

149voto

BrightUmbra Points 13844

J'ai l'habitude de dire "tel que" quand je lis cet opérateur.

Dans votre exemple, p => p.Age > 16 se lit comme suit : "P, tel que p.Age est supérieur à 16".

En fait, j'ai posé cette même question sur les forums officiels de préversion de linq, et Anders Hejlsberg a répondu en disant

Je lis généralement l'opérateur => comme "devient" ou "pour lequel". Par exemple,
Func f = x => x * 2 ;
Func test = c => c.City == "London" ;
se lit comme suit : "x devient x * 2" et "c pour lequel c.City est égal à Londres".

Quant à "va à", ça n'a jamais eu de sens pour moi. "p" ne va nulle part.

Dans le cas d'une lecture de code à quelqu'un, par exemple par téléphone, tant qu'il s'agit d'un collègue programmeur C#, j'utiliserais simplement le mot "lambda", c'est-à-dire "p lambda p dot âge supérieur à seize".

Dans les commentaires, Steve Jessop a mentionné "maps to" dans le cas des transformations - en reprenant l'exemple d'Anders :

x => x * 2;

lirait

x correspond à x fois 2.

Cela semble beaucoup plus proche de l'intention réelle du code que "devient" dans ce cas.

1 votes

Cela n'est exact que lorsque le lambda est utilisé comme filtre.

4 votes

L'expression "va à" est moins gênante que "remplit le cadre de la pile de"

1 votes

Je n'aime vraiment pas "x devient x * 2" ; x est une donnée d'entrée et reste le même tout au long du processus. En lisant cela, on a l'impression qu'il s'agit d'une opération d'affectation.

60voto

Kent Boogaart Points 97432

De MSDN :

Toutes les expressions lambda utilisent l'opérateur lambda =>, qui se lit comme "va à".

8 votes

Intéressant. Ce qui est peut-être encore plus intéressant, c'est que cela s'est avéré vrai pour l'ensemble de l'Union européenne. Version VS2010 mais l'orientation a été supprimée de la Version VS2012 .

1 votes

@BlairConrad - c'était peut-être vrai quand vous avez écrit votre commentaire, mais c'est maintenant le cas pour toutes les versions actuelles de VS.

0 votes

Je ne vois plus les mots "goes to" dans la documentation MSDN dont le lien figure dans la réponse ci-dessus. Je me souviens qu'aux alentours de 2010, un mentor m'a dit que la fonction lambda devait être lue comme "goes to" et c'est ainsi que je l'ai toujours lue. Cependant, en tombant sur cette question, la lecture de la fonction lambda comme "tel que" me semble plus logique.

19voto

Gulzar Nazim Points 35342

Lire un code par téléphone

De Eric Lippert :

Personnellement, je dirais c=>c+1 comme "voir va à voir plus un". Quelques variations que j'ai entendues :

Pour une projection, (Client c)=>c.Nom : "client voir devient voir point nom"

Pour un prédicat, (Client c)=>c.Age > 21 : "client see tel que see dot âge est supérieur à vingt et un".

0 votes

"Goes to" est l'expression que j'ai le plus souvent entendue lorsque je travaillais avec les équipes du projet LINQ.

15voto

Aidos Points 1440

Je l'ai toujours appelé "l'opérateur wang" :-)

"p wang âge de p supérieur à 16"

11 votes

C'est Numberwang !

4 votes

Il faut que tu me dises où, ailleurs sur la planète, on appelle ça "wang". Un membre de l'équipe m'a dit que c'était un "wang" et le seul endroit sur Internet où l'on peut le trouver, c'est dans cette réponse.

1 votes

@Wartickler Je suis originaire d'Australie occidentale - je l'ai toujours appelé l'opérateur wang :-)

7voto

Brian Points 14040

J'ai vu des gens dire "Arrow".

7 votes

J'espère que c'est une blague.

0 votes

Ce n'est pas le cas - j'ai vu la même chose.

1 votes

Je pense que les gens qui disent "flèche" veulent dire ceci : ->

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X