F# and Functional Programming Resources

F# is a functional language, created by Microsoft. Implemented under .NET CLR, it’s a typed language, with access to .NET framework. It inherits most of ML/OCaml features.

F# was born in Microsoft Research, and its main creator is Don Syme. Although is a functional language, it supports object programming, too. After years of development, now it’s mature. It’s gaining momentum in scientific community, thanks to its flexibility: it’s not limited to its own library: it can access all .NET framework (The image at left shows F# program running a demo using DirectX from .NET).

Citing Expert F# book promotion at Apress:

While inspired by OCaml, F# isn’t just another functional programming language. Drawing on many of the strengths of both OCaml and .NET, it’s a general–purpose language ideal for real–world development. F# integrates functional, imperative, and object–oriented programming styles so you can flexibly and elegantly solve programming problems, and brings .NET development alive with interactive execution. Whatever your background, you’ll find that F# is easy to learn, fun to use, and extraordinarily powerful. F# will help change the way you think about and go about programming.

There is lot of information about the language. This post is a collection of links, blogs, posts, resources, books, about this very interesting language.


The first page to visit  Microsoft F# Home page:

Microsoft Research’s website for F#
F# Manual
F# Documentation

There are blogs and forums at
hubFS- The place for F# – F# news, forums and blogs

Personal blogs with F# info:
Don Syme’s web log, a key source of information on F#
Robert Pickering’s blog
Tomas Petricek
Granville Barnett’s blog
Luke Hoban’s blog
Chris Smith (F# Tester)
Brian McNamara (F# Dev)
Jomo Fisher (F# Dev)
Andrew Kennedy (MSR)
Luca Bolognese (Managed Languages Principal PM)

Harry Pierson has written many post about functional programming, C# and F#:
DevHawk Functional Programming category

Posts and podcasts

Some links to blog posts (there are hundreds in the above links), only to taste the language and its power:

Episode 18- Matt Podwysocki on F# and Functional Programming Herding Code
Matt Podwysocki puts the fun in functional programming with a deep dive into F#.

Concurrency on a single thread
F# has the async computation expression for writing parallel programs.

F# September 2008 CTP Released
The F# Team has released the F# September 2008 CTP. 

F# Overview (I.) – Introduction Articles TomasP.Net

Functional Understanding

Practical F# Parsing- The Parse Buffer

Play Ball Script in F#

Units of Measure in F#- Part One, Introducing Units

The Weekly Source Code 34 – The Rise of F#

To listen

Herding Code 18- Matthew Podwysocki on F# and Functional Programming
Software Engineering Radio Episode 108 – Simon Peyton Jones on Functional Programming and Haskel
.NET Rocks Episode 310 – Simon Peyton Jones on Functional Programming and Haskell


F# Samples – Home
Ant Colony Simulation

F# Books

  Foundations of F#

Every professional .NET programmer needs to learn about FP, and there’s no better way to do it than by learning F#–and no easier way to learn F# than from Foundations of F#. Written by F# evangelist Rob Pickering, this is an elegant, comprehensive introduction to all aspects of the language and an incisive guide to using F# for real-world professional development.

by Robert Pickering | ISBN-13: 978-1-59059-757-6 | Published May 2007 | 360pp.


 Expert F#

Written by F#’s inventor and two major contributors to its development, Expert F# is the authoritative, comprehensive, and in–depth guide to the language and its use. Designed to help others become experts, the first part of the book quickly yet carefully describes the F# language. The second part then carefully shows how to use F# elegantly for a wide variety of practical programming tasks.

by Don Syme, Adam Granicz, Antonio Cisternino | ISBN-13: 978-1-59059-850-4 | Published Dec 2007 | 609pp.

Another book by Jon Harrop: 

F# for Scientists

F# for Scientists will bring you up to speed with basic syntax and programming language concepts. Written in a clear and concise style with practical and enlightening examples, this book is accessible and easy to understand. By reviewing the Visual Studio screen shots that illustrate compilation, debugging and interactive use, you will understand both the functional aspects of F# and the object-oriented task-based features that make F# so useful in practice.

Functional Programming

If you are looking for functional programming in general:

Functional Programming for the Rest of Us

Why Functional Programming Matters a classic by John Hughes

Why Haskell Matters

The classic paper by Backus backus.pdf

A “potpurry” of links:

Are FP and OO Incompatible Syntactic Styles-
A Gentle Introduction to Haskell, Version 98
About Erlang
APL (programming language) (one of my first encounter with FP)
An APL Compiler (Timothy Budd book)
The Cat Programming Language
YouTube – Tangible Functional Programming
Functional Programming Notables #1 (more links to FP)
The Little MLer
functional objects Felleisen
Erlang in Lisp
Free Online Functional Programming Books — FreeTechBooks.com
The Expression Lemma (very geek, category theory, functional programming and LINQ!!)
Chaitin’s construction (more geeky, more category theory, Chaitin visited my country many times, he’s argentinian)
On being stateful
The Glasgow Haskell Compiler
A Neighborhood of Infinity- You Could Have Invented Monads! (And Maybe
InfoQ- Domain Specific Languages in Erlang

Functional C#

.NET and C# are moving to functional style. All you want to know about programming functional C# at Mattew Podwysocki post:

Richmond Code Camp 2008.2 – Functional C# Recap

Other links:

Functional C# Project
Is C# Becoming a Functional Language- – Mads Torgersen
Functional C# – Learn from F# and LINQ

My Delicious

As usual, the links I found useful are added to my delicious. Check:


Angel “Java” Lopez

2 thoughts on “F# and Functional Programming Resources

  1. Pingback: Sabattical Week Results « Angel “Java” Lopez on Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s