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.

Links

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

Examples

F# Samples – Home

Ant Colony Simulation

FsTest

FsUnit

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:

http://delicious.com/ajlopez/fsharp

http://delicious.com/ajlopez/f%23

http://delicious.com/ajlopez/functionalprogramming

http://delicious.com/ajlopez/haskell

http://delicious.com/ajlopez/erlang

Angel “Java” Lopez

http://www.ajlopez.com/en

http://twitter.com/ajlopez

http://delicious.com/ajlopez