Not really. I developed in it for about three months for a financial company, and compared to all of the other ML derivatives I have used (SML/NJ and OCaml) I found it frustrating to program in and some of the libraries to be broken and/or fragile. But what it really comes down to is that it is one of the few languages that was truly painful and boring to code in.
The C9 Lectures are awesome. I personally liked the C9 Lectures from Dr. Erik Meijer about Functional Programming Fundamentals. He uses Haskell to guide you through the fundamentals, so it's also a chance to have a look at the language itself (The lecture's based on the book Programming in Haskell, http://www.cs.nott.ac.uk/~gmh/book.html). There are 13 parts, and you can start with the lecture by watching the first part here: http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Eri...
On a sidenote: the enthusiasm Dr. Meijer spreads during the whole lectures is somehow contagious; he's done a very good job with these lectures IMHO.
From my limited knowledge it seems to be taking the good concepts from more obscure or academic functional languages and making them easier to implement with the help of the existing .NET infrastructure.
For all intents and purposes, it is OCaml on .NET. I currently work in a .NET shop and it has made functional programming a real possibility when using the .NET stack. Combine that with the functional capabilities of C# and you have a real possibility of at least some of the features of functional languages becoming mainstream. I am hopeful.
Hopefully, from my personal experience when I was interning in a .NET shop I first heard of F#. Didn't ask them at the time but it seemed like even just making a choice between VB and C# on most projects wasn't an option. Wonder now if they would allow F# for project.
I absolutely adore F#. It's basically a direct port of OCaml, in the earlier versions if you omitted #light then it was basically OCaml. I personally very much enjoy the pipe operator (|>) which lets you pass the output of one function as the input of another.
16 comments
[ 3.6 ms ] story [ 49.1 ms ] threadOn a sidenote: the enthusiasm Dr. Meijer spreads during the whole lectures is somehow contagious; he's done a very good job with these lectures IMHO.
From my limited knowledge it seems to be taking the good concepts from more obscure or academic functional languages and making them easier to implement with the help of the existing .NET infrastructure.