7

Is there a situation where the use of the lambda expression is particularly helpful or its mainly usage is to write less code?

3
  • 10
    Isn't writing more concise and readable code already particularly helpful? Commented Feb 27, 2010 at 15:22
  • Take a look at John Skeet's SO answer here. And here is another SO question with specific uses of lambdas Commented Feb 27, 2010 at 15:27
  • 2
    Eh eh, sure it is. But I would like to know if it is the only topic... :-) Commented Feb 27, 2010 at 15:31

2 Answers 2

19

The justification for adding lambdas to the language was two things.

(1) They make syntactic transformation of query comprehensions possible. When you say

from customer in customers 
where customer.City == "London" 
select customer

That becomes

customers.Where(customer=>customer.City == "London")

(2) They can be turned into expression trees, and thereby make LINQ-to-SQL, LINQ-to-Entities, and so on, possible. That is, they can represent both the ability to do their semantics and the ability to inspect their structure.

Sign up to request clarification or add additional context in comments.

3 Comments

Could you provide an example of an expression tree, please? Thanks
@Eric - You forgot to say "And they're just really cool" ;)
2

Lambda expressions are syntactic sugar for anonymous methods, and their use cases are mostly the same.

Lambdas can also be converted to expression trees.

As they are much shorter and easier to write (at least for the simple cases), that in itself is helpful.

2 Comments

I like the expression "syntactic sugar", I didn't know it.
Not quite the same - lambda expressions can also be converted into expression trees, whereas anonymous methods can't. (There's no such term as "anonymous delegate" - there are anonymous methods, and anonymous functions - that latter is a term covering both anonymous methods an lambda expressions.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.