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

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


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.



Right click to download this episode

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.

Add Your 2 Cents