From functional concepts to real-world F#

  • Tomas Petricek University of Cambridge
September 14, 2012 9:00 AM - 5:30 PM


The ideas that arise from functional programming can be found in many main-stream programming languages and libraries in C#, JavaScript, Ruby and others. You don't need to be functional programmer to use them, but learning a few simple concepts will help you understand how things work and make you a better programmer. Moreover, functional languages like F# make can be easily used to solve a complex part of a problem and integrate it with a larger solution, which makes it easy to start integrating functional style in practice.


This practical tutorial will teach you how to turn to the functional side. In the morning, we'll slowly introduce functional concepts by looking how would the same concepts look in object-oriented style. You'll understand how functional programming works under the cover and you'll be ready to use F# to solve some practical problems in the afternoon. The examples will include concurrent programming and data analysis tasks.


The morning part of the tutorial is designed for programmers with no prior knowledge of functional programming. The afternoon part assumes some experience with the F# syntax and functional ideas (which you'll learn in the morning, although the parts are largely independent).

You will leave with understanding why functional concepts matter. Many of the ideas will be applicable regardless of the programming language used. Moreover you will learn about some interesting F# technologies such as asynchronous workflows and type providers.


Please bring a laptop to the tutorial. Ideally, you should install the required software on your laptop before the tutorial. If that fails, we'll have a machine on-site for you to connect to. In that case, make sure to have an RDP client (a client for Microsoft's Remote Desktop protocol) installed on your laptop, so you can connect to our on-site machine.

If you have problems or questions, please contact Mike Sperber (sperber(at)deinprogramm(dot)de).

Installing the prerequisite software

You need a Windows to follow this tutorial. (If you don't have Windows on your laptop, do not worry - there'll be a machine on-site for you to log into. See above.)

You will also need Visual Studio 2012: Microsoft has a trial version of Visual Studio 2012 Ultimate that is available for free download.

Tomas Petricek

Tomas Petricek

Tomas is a PhD student at the University of Cambridge with interest in functional programming languages. He is an F# expert, using F# since the early Microsoft Research versions. Together with Jon Skeet, he wrote a book Real-World Functional Programming which explains basic functional concepts using C# (teaching F# alongside) and which shows several appealing real-world uses of F#. Finally, Tomas also contributed to the development of F# itself as an intern and contractor at Microsoft Research. Before moving to Cambridge, Tomas studied and worked as a consultant in Prague in Czech Republic.