F# Tutorial Code and Slides

[ The attached tutorial code has now been updated for the F# Visual Studio 2010 Beta2 release (with matching CTP update for Visual Studio 2008) ] 

One of the great pleasures of my job is to go to conferences like JAOO and present on F# and other topics. This year I presented both a tutorial and a lecture at JAOO 2009, and I’ve included the tutorial and lecture slides below! Thanks to everyone who came along – I really enjoyed giving this one!

Some highlights of the code are:

  • Foundational material on F# async programming, and samples including:

    • Fetching web pages in parallel

    • The Bing translator sample using async programming

    • A Graphical, asynchronous twitter client in 50 lines

    • A Twitter feed example that uses F# first class reactive event processing to process the stream of feeds

    • An asynchronous web crawler

    • Processing images in parallel, using a mixture of I/O and CPU parallelism

  • An updated version of the famous Interactive DirectX demo

  • Lots of great micro samples on foundational topics such as

    • object oriented programming

    • language oriented programming

    • function composition

    • design patterns

    • discriminated unions

    • records

    • units of measure

The tutorial slides include important new slides on asynchronous programming. Over the next few blog entries I’ll be taking a closer look at some of the material, especially in the areas of parallel and asynchronous programming.

I’d really appreciate your input on how we can make this tutorial even better. Giving an F# tutorial is enormously enjoyable and if you’d like to give a tutorial, please drop me a note (dsyme at microsoft dot com) and I’ll send you the latest copy of the slides and code – we’re already planning to add a few more , including a section on the standard F# “functional programming operators” such as List.map, List.fold etc.Send us your suggestions for further topics to cover!

Some of this material comes from Chris Smith, Matthew Podwysocki, Luke Hoban, Brian McNamara and James Margetson from the F# core team at Microsoft. Some snippets of the async samples showing the use of the PeriodicTable web service were co-developed with Robert Pickering (thanks Robert!)





Comments (10)

  1. Behzad says:

    Thanks for the great post, but it seems that attachments have errors

  2. Thank you for linking to the slides. I am a firm believer that F# is the future, too bad I can’t get a job doing it, at least right now. I have asked Channel 9 for the video of your talk, assuming one exists.

  3. Hi Don, the download link to the zip file does not seem to be working.

  4. Dmitry Gutov says:


    I believe there’s some problem with the attachment, the link leads to an error page.

  5. Vivek says:

    Don, the linked to the "jaoo-2009-fsharp-tutorial-slides-and-code.zip" is broken. Please upload the attachment again or correct the link. Thanks, Vivek.

  6. Tony says:

    I cannot build the solution with Visual Studio 2010. Do you have solution that will build with VS 2010?



  7. Tony Bermudez says:

    The code will not compile under Visual Studio 2010. Do you have a project/solution for VS 2010?



  8. Behzad says:

    The link is fixed, i tried again today and i could download the file, thanks for the great collection

  9. lb says:

    That’s a beautiful and comprehensive tutorial.

  10. Mike says:

    Looks very tempting.

    (1) Will we find more practical code examples like this in Your new book?

    (2) Which GUI framework do You recommend for F# above all? DirectX, XNA, Forms, WPF? I’m a bit confused what’s worth the invest.