Search code examples
c#.netlambdaconventions

How do I pronounce "=>" as used in lambda expressions in .Net


I very rarely meet any other programmers!

My thought when I first saw the token was "implies that" since that's what it would read it as in a mathematical proof but that clearly isn't its sense.

So how do I say or read "=>" as in:-

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

Or is there even an agreed way of saying it?


Solution

  • I usually say 'such that' when reading that operator.

    In your example, p => p.Age > 16 reads as "P, such that p.Age is greater than 16."

    In fact, I asked this very question on the official linq pre-release forums, and Anders Hejlsberg responded by saying

    I usually read the => operator as "becomes" or "for which". For example,
    Func f = x => x * 2;
    Func test = c => c.City == "London";
    reads as "x becomes x * 2" and "c for which c.City equals London"

    As far as 'goes to' - that's never made sense to me. 'p' isn't going anywhere.

    In the case of reading code to someone, say, over the phone, then as long as they're a fellow C# programmer, I'd just use the word 'lambda' - that is, "p lambda p dot age greater-than sixteen."

    In comments Steve Jessop mentioned 'maps to' in the case of transformations - so taking Anders' example:

    x => x * 2;
    

    would read

    x maps to x times 2.

    That does seem much closer to the actual intention of the code than 'becomes' for this case.