To learn F# use one of the free online resources or books below.

F# for Fun and Profit

Introduces you to F# and show you ways that F# can help in day-to-day development of mainstream commercial business software.

Try F#

Try F# is an interactive environment where you can explore F# in your web browser (on Mac and Windows). It contains a number of online tutorials demonstrating the power of F#:

F# Cheat Sheet

The cheat sheet is a small and concise guide to F# syntax for newcomers to get started with the language. It’s available in HTML and PDF format.

F# Books - General

Building Web, Cloud, and Mobile Solutions with F#

Daniel Mohl

Learn how to build key aspects of web, cloud, and mobile solutions by combining F# with various .NET and open source technologies. With helpful examples, this hands-on book shows you how to tackle concurrency, asynchrony, and other server-side challenges. You’ll quickly learn how to be productive with F#, whether you want to integrate the language into your existing web application or use it to create the next Twitter.

Beginning F#

Robert Pickering

Functional programming is perhaps the next big wave in application development. With Beginning F#, you have a companion that that will help you explore F# and functional programming in a .NET environment. This book is both a comprehensive introduction to all aspects of the language and an incisive guide to using F# for real-world professional development.

Programming F# 3.0

Chris Smith

Why learn F#? This multi-paradigm language not only offers you an enormous productivity boost through functional programming, it also lets you develop applications using your existing object-oriented and imperative programming skills. With Programming F#, you’ll quickly discover the many advantages of Microsoft’s new language, which includes access to all the great tools and libraries of the .NET platform.

F# For C# Developers

Tao Liu

People often ask, “What can F# do that C# cannot?” In this book, you will discover much of what F# can do! You will see familiar things such as object programming and design patterns. Further, you will also see powerful new things like pattern matching, piping, first-class events, object expressions, options, tuples, records, discriminated unions, active patterns, agents, computation expressions and, perhaps most distinctively, type providers.

Expert F# 3.0

Don Syme, Adam Granicz, Antonio Cisternino

Expert F# 3.0 is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity.

Real World Functional Programming

Tomas Petricek with Jon Skeet

Real World Functional Programming is a unique tutorial that explores the functional programming model through the F# and C# languages. The clearly presented ideas and examples teach readers how functional programming differs from other approaches. It explains how ideas look in F#-a functional language-as well as how they can be successfully used to solve programming problems in C#. Chapters from this book available on MSDN page

Functional Programming Using F#

Michael R. Hansen, Hans Rischel

This comprehensive introduction to the principles of functional programming using F# shows how to apply basic theoretical concepts to produce succinct and elegant programs. It demonstrates the role of functional programming in a wide spectrum of applications including databases and systems. Coverage also includes advanced features in the .NET library, the imperative features of F# and topics such as text processing, sequences, computation expressions and asynchronous computation. With a broad spectrum of examples and exercises, the book is perfect for courses in functional programming and for self-study. Enhancing its use as a text is an accompanying website with downloadable programs, lecture slides, a mini-projects and links to further F# sources.

F# for Scientists

Jon Harrop

Over the next five years, F# is expected to become one of the world’s most popular functional programming languages for scientists of all disciplines working on the Windows platform. F# is free and, unlike MATLAB and other software with numerical/scientific origins, is a full-fledged programming language. F# for Scientists explains and demonstrates the powerful features of this important new programming language.

Visual F# 2010 for Technical Computing

Jon Harrop

Read this full-color book to learn how Microsoft’s new Visual F# 2010 programming language can be used as a next-generation platform for high-performance interactive technical computing. Topics covered include the latest version of the F# language, parallel programming with .NET 4, Windows Presentation Foundation for visualization, concurrent programming with asynchronous workflows, and many others.

Professional F# 2.0

Ted Neward, Aaron Erickson, Talbott Crowell, Rick Minerich

This is a book on the F# programming language. The authors are not attempting to teach developers how to accomplish tasks from other languages in this one, nor are they attempting to evangelize the language or its feature set or its use “over” other languages. They assume that you are considering this book because you have an interest in learning the F# language.

F# for Quantitative Finance

Johan Astborg

This book will cover everything you need to know about using functional programming for quantitative finance. Using a functional programming language will enable you to concentrate more on the problem itself rather than implementation details. Tutorials and snippets are summarized into an automated trading system throughout the book.

The Book of F#

Dave Fancher

The Book of F# aims to introduce intermediate and experienced developers to functional-first programming with F#. Throughout the book, you’ll learn how this robust language can help you focus on creating correct solutions by introducing a variety of important concepts including currying, partial application, pattern matching, units of measure, asynchronous workflows, query expressions, type providers, and computation expressions. Furthermore, you’ll discover how F#’s rich object-oriented capabilities allow it to naturally fit into existing applications.

Programming Language Concepts

Peter Sestoft

The book Programming Language Concepts (PLC) provides an introduction to programming language concepts and implementation technology, such as interpretation, compilation, type checking and type inference, abstract machines, and garbage collection. F# is used as a meta language throughout the book expressing all concepts and examples of programming language design in a modern strongly-typed language of the ML-family, enabling the reader to experiment with the ideas right away.

F# Books (Coming Soon)

F# Deep Dives

Tomas Petricek and Phillip Trelford

F# Deep Dives presents a collection of real-world F# techniques, each written by expert practitioners. Each chapter presents a new use case where you’ll read how the author used F# to solve a complex problem more effectively than would have been possible using a traditional approach. You’ll not only see how a specific solution works in a specific domain, you’ll also learn how F# developers approach problems, what concepts they use to solve them, and how they integrate F# into existing systems and environments.

Understanding Functional Programming

Scott Wlaschin

A practical approach with examples in F#. Are you an experienced C#, Java or Python developer? Do you want to understand what all the fuss about functional programming is about? Designed for beginners, this book will explain all the core concepts of functional programming in a practical way with no maths or jargon.

Online Tutorials

This section lists of some of the freely available online tutorials on F#. You can browse these online guides to find explanation of all important F# language features and see many interesting examples.

F# Programming Wikibook

The wikibook contains a comprehensive guide to F# programming. It covers F# language basics and essential functional programming concepts such as working with functions and immutable data structures. It also discusses imperative and object-oriented programming in F# and advanced langauge features such as active patterns and computation expressions.

Real World Functional Programming

This part of MSDN contains chapters from the book by Tomas Petricek and Jon Skeet with additional material on Numerical Computing by Yin Zhu.

F# Workshop

Material from the F# Introduction Workshop created by Jorge Fioranelli.