Sort:  

Not really. Take the following

var wanted = things.Where(thing => IsWanted(thing)); 
var wanted = things.Where(IsWanted); 

With a collection 1000 elements long the first one will result in 1000 extra function calls because of the pointless wrapper. So more stack manipulation etc.

So just using the method group saves a lot of work and is cleaner.

When you get to using partial application in C# then you are right, it does become about sugar, C# does not curry at a language level.

Just thought, there is also a good side effect of function factories to build closures vs lambda defined inline where used. It gives you explicit control over what is captured by the closure.

Are you a resharper user? Great tool but one thing it does it let you know when the C# compiler pulls in far more to closures than wanted. This actually happens a lot in reality and sometimes the only way to control is re-order the function code.

By using a function to scope and build a closure you gain explicit control over the process by limiting what is in scope in the first place :)

Here is an example of over capture

The 3 dots under the arrow of the lambda is resharper in action. Here it is warning me that the compiler is actually pulling in objects that it makes no use of. So that effects their object lifetime etc when it should not.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.081
BTC 61240.63
ETH 1620.29
USDT 1.00
SBD 0.42