Note: I am aware of the earlier question “What is the purpose of LINQ\'s Expression.Quote method?”, but if you read on you will see that it doesn’t answer m
I believe it is more like given:
Expression>> f = () => () => 2;
Your tree is Expression.Lambda(Expression.Lambda) and f represents the Expression Tree for a lambda that returns a Func that returns 2.
But if what you wanted was a lambda that returns the Expression Tree for a lambda that returns 2, then you need:
Expression>>> f = () => () => 2;
And now your tree is Expression.Lambda(Expression.Quote(Expression.Lambda)) and f represents the Expression Tree for a lambda that returns an Expression that is the Expression Tree for a Func that returns 2.