When I used it no one wanted to learn F#, but if I put a nice OO interface on top of whatever I wrote, packaged it as a DLL the other devs would be happy to use it.
F# isn't just cool, it will make you write better code, faster. The zen of it makes you follow a better path. Think about how many bugs go away when you make all sides of an 'if' 'else' block return the same data type.
Think about how much more sense returning an out parameter as a tuple makes. I'd much rather write
let value = match dict.TryGetValue("foo") with
| (true,val) -> val
| (false,_) -> "default"
Than string value;
if(!dict.TryGetValue("foo", out value)){
value = "default";
}
Also, if you're using a match statement and forget to handle the false case, the compiler will scream at you. In C# you're on your own. Also, in C# in this case you can't even use var because you're not initializing it.The other thing about F# is that it's FAST, fast like beating C at the burrows-wheeler transform.