C9 Lectures: Dr. Don Syme - Introduction to F#, 1 of 3

Download this episode

Download Video


F# is Microsoft's first functional programming language to be included as one of Visual Studio's official set of languages. F# is a succinct, efficient, expressive
functional/object-oriented programming language under joint development by Microsoft Developer Division and Microsoft Research. During the course of

Erik Meijer's fantastic lecture series on functional programming fundamentals

several of you asked for examples of specific topics in F#. Well, we listened.

Dr. Don Syme is a principal researcher in

MSR Cambridge
. He has a rich history in programming language research, design, and implementation (C# generics being one of his most recognized implementations), and is the principle creator of F#. Who better to lecture on the topic than Don? This three
part series will serve as an introduction to F#, including insights into the rationale behind the history and creation of Microsoft's newest language.

Part 2
Part 3

Get the slides for this lecture

Read Don's Blog.



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image

      Really looking forward to watching this!

    • User profile image

      Wow! I was not suspecting this. Putting F# aside for a moment, we all owe Don a pint for giving us generics!

    • User profile image



    • User profile image

      Very insightful. I really like this language, it's an advancement over C# in many ways.. I really like the fact that this language uses indentation instead of sentinels like { } for code blocks; that allows for both unstructured and non-OO programming; that it has an interactive shell; that it has a range operator and pipelining built in; and that it has BigInt literals (actually .NET didn't get BigInt until recently); and that map is apparently an important part of the language. Really cool stuff.


      There should be a homework thing at the end though IMO. That helps audience participation.

    • User profile image
      Ion Todirel

      hi there, that's in Romanian btw, interesting choice Smiley

    • User profile image

      C9 is multicultural Wink


    • User profile image

      dot_tom wrote  ... "we all owe Don a pint for giving us generics!" ...


      True, but dont forget Andrew Kennedy!! We owe him a pint for generics too! 


      This is sensational!! I'm really looking forward to this!  Thanks to the great Eric Meijer ... thanks to Don Syme for doing this series! and thanks to Charles for helping make it happen! We love technical content on channel9! Please keep it coming!



    • User profile image

      I am not sure if there has ever been a better time to be a programmer.  It is simply fantastic that we can watch and learn from the greatest tool makers around, in an on-demand fashion.  Not to mention the incredible speed in which the tools are improved, the quality of the delivered product, and the swiftness that they make it into my reach.  This place is wonderful!  My only hope is that the presenters take as much out of these experiences as the members watching in their homes and workplaces do.



    • User profile image

      In case you missed it, there's a great interview with Erik on Hanselminutes.

    • User profile image



    • User profile image

      I spent a while figuring out how to change the font for the F# Interactive window in VS 2008. It's Tools -> Options -> Environment -> Fonts and Colors -> Output Window.


    • User profile image

      I love it, more Dr Syme. I can't wait to start rolling in F# in our current product line.

    • User profile image

      The link for the ipod version of the file is not working, can somebody please fix it.


    • User profile image
      Simon Woods

      Excellent stuff!


      I don't know if this is going to be covered, but perhaps Don could address the shift in thinking for problem solving from an OO perspective to problem solving from a functional perspective.


      eg1 In this lecture, Don did make a comment in passing that with OO fundamentally you look for, develop and end up with a class hierarchy. What would be the FP equivalent? Is it something like functional decomposition? So whatever I am developing,  for example, my top level is something like X is a function of Y. and then Y gets decomposed into subexpressions etc?


      eg2 I'm just reading Tomas Petricek's Real World Functional Programming and as he explains Pattern Matching and provides the C# switch equivalent, I immediately think (rightly or wrongly) of the "Replace Conditional With Polymorphism" refactor pattern - but perhaps this mindset is no longer appropriate in an FP world.


      Many thx again






    • User profile image
    • User profile image

      The link for the lecture slides is dead.


      Also, there's a typo in the side-by-side C# and F# code shown at 9 minutes -- Console.WriteLine(a); on the C# side should be Console.WriteLine(a());, as a is a method rather than a property.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.