Getting started with F#
Solution 1
Official entry point is here: Microsoft F# Developer Center
For a quick taste, consider trying F# in your browser (Silverlight). (contains interactive tutorial walkthroughs)
Start by watching videos and presentations (BTW, An Introduction to Microsoft F# by Luca Bolognese is still one of the best presentations on the subject). Then read the following two must-read books:
- Programming F#: A comprehensive guide for writing simple code to solve complex problems by Chris Smith
- Expert F# 2.0 (Expert's Voice in F#) by Don Syme, Adam Granicz, and Antonio Cisternino
and in addition to that...
Quick Links
- Visual Studio (F# is standard feature of professional editions of VS2010 and VS2012)
- Get F# Tools for Visual Studio 2012 Express for Web (free 2012 tools release info)
- Download the F# November 2010 CTP (free 2010 tools release info)
- Learn F# via MSDN resources
- The F# 2.0 Language Specification (PDF) (F# 3.0 spec to appear)
- MSDN docs for F# (language reference, library reference)
- F# Programming at Wikibooks (there are lots of samples)
- F# Samples and Walkthroughs
- F# 3.0 Sample Pack
- In-browser tutorials at Try F# (requires Silverlight)
- The F# Foundation has lots of resources
Community
Q&A
- F# tags here on StackOverflow
- F# MSDN forum
- F# on fpish
Blogging/publishing
- F# Community Blogs
- fpound.net aggregator
- F# on twitter
- F# on github (fsharpx)
- F# team blog
Meetup Groups
- New York City F# User Group
- Chicago F# Users
- F# Seattle User Group
- The San Francisco Bay Area F# User Group
- F#unctional Londoners Meetup Group
- The Zurich FSharp Users Meetup Group
Videos
Other Books
- Foundations of F# (Expert's Voice in .Net) by Robert Pickering (May 2007)
- Beginning F# by Robert Pickering (Dec 2009)
- Real World Functional Programming by Tomas Petricek & Jon Skeet (Jan 2010)
- Visual F# 2010 For Technical Computing by Dr Jon Harrop (Apr 2010)
- Friendly F# by Giulia Costantini and Giuseppe Maggiore (Aug 2011)
Tools needed
Visual Studio:
- F# is built in to professional editions of VS2010 and VS2012.
- F# is available as a add-on component to Visual Studio 2012 Express for Web.
- Alternatively you can also install the VS2010 integrated shell (free download). Then install the CTP MSI, for a free VS2010 version of F# 2.0.
MonoDevelop:
- You can find lots of information about using F# within MonoDevelop here. The F# compiler and fsi.exe are now part of the Mono distribution.
Solution 2
The way I learned F# was to go through the following 3 steps.
First, I went through the introduction on the Try F# website which gives a good (but light) interactive introduction to the syntax and style of the language.
Next, to get a feel for actually solving problems in the language, I began solving some of the puzzles on the Project Euler site. I solved about the first ten problems and after each successful problem, I looked up an alternative F# implementation here. This gave a good feeling for how to work with sequences and using recursion and just generally becoming comfortable with the syntax.
Finally, I read the truly excellent 30-point guide Why use F# on http://fsharpforfunandprofit.com/. It takes you step-by-step through all of the major parts of the language describing how you can take advantage of them - with an eye towards C# developers. After that I encourage you to look around for other resources on the website, they are all very well written and highly insightful.
After completing these steps you should be ready to begin creating a real project in F#.
Solution 3
Brian already put together a great list, but I humbly submit my own small contribution to the rich ecosystem of F# learning material, the F# Koans- a simple, fun, and interactive way to learn the F# language through testing.
Comments
-
Prakash almost 2 years
How do I go about getting into F# programming?
What are some good starter samples to learn the language, or learn about some of its advantages over other languages?
What tools do I need (e.g. Windows, Visual Studio, ...)?
-
H.B. over 11 yearsI have yet to encounter a "must-read" book when it comes to programming, hence i am rather sceptical of such book recommendations...
-
Be Brave Be Like Ukraine over 11 yearsWhat if this was added into the tag info? stackoverflow.com/tags/f%23/info
-
79E09796 over 11 years+1 This is a great interactive introduction to the basic concepts, looking forward to some advanced level koans.
-
nicolas over 11 yearsIf it can help, I and myself, found that I use different books for different purposes. Expert F# more as a reference (not a pure reference though) to lookup things, beginning F# as a culture book where I always learn something very useful no matter which chapter I read, even basic stuff, and RWFP as a wrapping up on a subject.
-
nicolas over 11 yearsI quite highly recommend Jon Harrop's book too. Really to the point, on the algo side with nice fundamental stuff. 0% waste. Also Jon likes noobie.
-
nicolas over 11 years@H.B. I think there are must read, but those are not fundamental and general enough to qualify IMHO
-
H.B. over 11 years@nicolas: For .NET techs i only consider the hard documentation and introductory articles on MSDN a must read, but those are not books obviously.
-
Tyler Smith over 11 yearsThank you. I learned a ton from the koans, and i would totally be interested in some advanced level ones.
-
Terrance about 11 yearsIMO Chris Smith's book is good if you know functional programming concepts already and just need to learn how to apply them to f#.
-
Ostkontentitan over 9 yearsI really like the Euler recommendation. Actual problem solving is (to me) the best way to really dig in. Also fsharpforfunandprofit is a great source i found really helpful too.
-
Ostkontentitan over 9 yearsOn the euler project example solutions for f# doesn't seem to be the most performant. Problem one performs a lot better with: let problem1 = [1..999] |> List.filter (fun x -> (x % 5 = 0 || x % 3 = 0)) |> Seq.sum;; I'd suggest measuring time of your solution and the provided ones. stackoverflow.com/questions/4528355/…
-
Grzegorz Gierlik about 9 yearsI did the same. Learned a bit of language/syntax/way of thinking and went to Project Euler.
-
Alexander Oh over 7 yearsawesome post. this should be in the tag wiki :)