I am looking at taking F# for a test drive. What is a really good book to get started for a C# developer?
My friend is one of the developers behind F# and he is currently writing a book about it. Follow this link for more information and first chapters. http://tomasp.net
F# is a (purely) functional language as far as I know. Any book on Haskell is most likely a very good way to start: the language is older and are of many universy courses. In fact Haskell is/was developed in part by people of Microsoft Research labs. So there are quite a lot of good books and tutorials on that language to start learning functional programming. My university teacher started to work for Microsoft see: http://channel9.msdn.com/shows/Going+Deep/Erik-Meijer-Functional-Programming/
General search on functional programming courses: [Google functional programming course][1]
Books currently available as of January, 2010 in order of release:
- Beginning F# by Robert Pickering (Dec, 2009)
- Sequel to Foundations of F# (Oct, 2007)
- Real World Functional Programming by Tomas Petricek and Jon Skeet (Dec, 2009)
- Programming F# by Chris Smith (me) (Oct, 2009)
- F# for Technical Computing by Jon Harrop (Oct, 2009)
- Sequel to F# for Scientists (Aug, 2008)
- Expert F# by Syme, Granicz, and Cisternino (Dec, 2007)
Books in development:
- F# in Action by Amanda Laucher (Summer, 2010)
- Expert F# 2nd Ed (Spring, 2010)
- Professional F# by Neward, Erickson, Crowell, Minerich (Summer, 2010)
F#'s not a purely functional language, but you can benefit a lot from learning the ideas. I found this book on Haskell to introduce a lot of concepts: http://book.realworldhaskell.org/ - it's not a replacement for the other books mentioned, but may be of some help.
I actually learned F# initially by way of Developing Applications With Objective Caml, which is available for free[1] online. It's not 100% applicable, of course, but since you're just starting out the core language elements certainly are very compatible. I would suggest using fsi and the ocaml interpreter side-by-side, it will help you learn the differences quickly.
It may be that it was the first thing I read, but I found "Foundations" the most confusing.
"Expert" goes incredibly deep, but the first few chapters will give you enough of the language to be really productive.
It's a learning curve, but stick inn there - it's a beautiful language.
"Scientists" is great, but very selective and wonderfully rich - there's a ton of information in a relatively short book. Also finding "The Little MLer" very useful as a sort of introduction to type calculus.
Looking forward to F# in a nutshell.
Expert F# is my favorite but the first edition is quite out of date and so would be difficult to work from. I would go with Chris Smith's Programming F# right now.