Getting started with F# [closed]

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

  • F# videos on Channel9
  • F# "How do I…?" videos on MSDN

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.

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#.