What does F# do that C# does not do?
This is an open question.
I read Pickering's Foundations of F# - and while there is a new syntax, clearly a lineage from OCaml, something called whitespace awareness or somesuch that gives me nightmares (note, I am not the biggest Python fan either) - I can't see anything there that has not been covered in C# 3.0, other than some syntax differences.
I could be wrong though - and probably am (and no, this is not a rhetorical post - someone could show me the way and turn me into a huge fan). I just don't get what this is going to buy me, especially given the likely resistance I will get when I try to sell this to a client (i.e. we were gonna use C#, but to save you money, we are going to...).
The gist of this is that, by the looks, C# 3.0, with it's lambdas and expression eval capabilities, does a ton of things that F# does to make it useful, but does them in a way that I can do it with regular, conservative, clients, that don't want to try to look at the job boards for F# maintenance programmer after our consulting gig is over.
Please prove me wrong. Pretty please. I want to be one of the cool kids with an affinity for an alt-language too!
PS - I know there is something to the functional vs OO style argument. Remember, I am a consultant, not the architect of Live Search. Please keep that in mind.