4 Days of F# in NYC!

Get 4 days of intensive F# trainings in New York by attending the Fast Track to F# course immediatelly followed by two days of Progressive F# tutorials with two tracks of hands-on tutorials.

As a limited offer, you can get a free ticket for Progressive F# tutorials, when you sign up for the Fast Track to F# training. Contact us for more details!

Start reading now!

Written by Tomas Petricek with Jon Skeet. Order from Manning or go to Amazon.com, Amazon.co.uk or your favorite book store.

MSDN Articles

The following MSDN sections were written as companion to Real-World Functional Programming. The first chapter is loosely based on chapters 1-3 of the book.

  1. Functional Programming Intro
  2. Server-Side Programming
  3. Client-Side Applications
  4. Numerical Computing
  5. Building Data-Driven Webs
  6. Visualizing Data

Section 4 was written by Yin Zhu and the remaining sections were written by Tomas Petricek.

Articles on MSDN

The MSDN section Real-World Functional Programming was written as an accompanying material for the Manning book of the same name. The chapter I of the material is based on chapters 1, 2 and 3 of the book. The remaining chapters are newly written material that focuses on real-world examples of using F#. The topics include server-side programming using agents as well as using F# with other .NET technologies such as Math.NET Numerics, Silverlight, ASP.NET MVC. The chapter IV was written by Yin Zhu and the remaining chapters were written by Tomas Petricek.

Chapter I: Introducing Functional Programming

This chapter explains the basic concepts behind functional programming and the F# language. Many of the concepts are demonstrated in C# to guide programmers without prior experience with F# or functional programming.

The chapter explains concepts such as immutability, first-class functions and expression-based programming. It shows the benefits of functional programming that follow from these concepts – such as the fact that they make testing and reasoning about programs easier.

Chapter II: Server-Side Functional Programming

The shift towards the software as a service paradigm means that an increasing number of applications need to be written as servers. This chapter explain server-side development and agent-based concurrency in F#.

The chapter introduces F# agents (the MailboxProcessor type). It includes a tutorial that develops a simple chat server using agents, encapsulates it into a reusable .NET object and exposes it as a web page using the HttpListener  type. The chapter also includes two reusable agents that solve common data processing tasks.

Chapter III: Developing Client-Side Applications

A lot of code assumes that it’s in the driving seat—that it controls what happens at each step. This model breaks down for user interfaces. This chapter explain how to write reactive user-interfaces in F# using Silverlight.

The chapter explains two approaches to writing reactive applications in F#. The first approach is declarative and it composes data-flow using event combinators. The second approach is more imperative and it describes control-flow using asynchronous workflows. The chapter also covers practical aspects, such as how to use F# with XAML and Microsoft Blend.

Chapter IV: Numerical and Symbolic Computing

(This chapter was written by Yin Zhu)

Thanks to its scientific roots, F# is a perfect langauge for numerical computing. This chapter explain how to use .NET libraries such as Math.NET Numerics, Sho, and F# Power Pack to implement numerical algorithms in F#.

The chapter explains what makes F# a great language for numerical computing. Then it introduces various numerical .NET libraries that can be used from F#. It presents a large number of examples using Microsoft Sho and Math.NET Numerics.

Chapter V: Working with Data

Most of web applications work with data in one way or another. The F# language is quite suitable for developing a data-processing parts of web applications. This chapter explains how to use Data and Web technologies from F#.

The chapter uses F# to develop the model and controllers of an ASP.NET MVC web application with a front-end created using C# and Razor. It shows how to use asynchronous workflows to write more efficient web pages and how to easily access SQL database using dynamic operator.

Chapter VI: Visualizing Data with .NET Charts

This chapter explains how to create charts in F# using the .NET Chart Controls library, F# wrapper for the library named FSharpChart and other technologies such as Excel.

The chapter describes .NET Chart Controls library (including topics like data-binding) as well as the FSharpChart wrapper that has been designed specifically for F#. It includes numerous larger tutorials, such as visualization of financial data, and How To articles that show how to create common chart types.