Taking Efficiency One Step Further - F#

Play Taking Efficiency One Step Further - F#
Sign in to queue


Microsoft Research describes F# as "a scripted/functional/imperative/object-oriented programming language". Combining all those aspects in one language is certainly not an easy task, but they've done a good job of it. F# is interesting both as a language to actually consider for your projects and as a source of features that might make it into the mainstream .NET languages tomorrow. The session uses many examples to give you a good general overview of F#.

This video is recorded at the Dutch DevDays in Den Haag The Netherlands in June 2009. DevDays is the largest industry event for developers in the Netherlands. Thousands of professional developers visit DevDays yearly to keep in touch with the latest developments in their field.



Download this episode

The Discussion

  • User profile image

    Thanks for posting this. It is the start of a compelling argument for me to explore this language further. F# information seems very fragmented in blogs, sample chapters of future books, etc For me, F# needs an "Annotated Reference Manual" equivalent.

    However we make do, and this was good. Are there videos of the other two talks Oliver Sturm gave?

  • User profile image


    We're in the process of getting the rest of the devdays videos online. We're still waiting for the videos. We have to process them and upload them to channel9. Lot of work. I would suggest you subscribe to this RSS feed: http://channel9.msdn.com/tags/DevDays+2009+NL/RSS/ you will get notified when we post new videos.


  • User profile image

    Inmiddels een paar maanden verder. Hoe staat het met de andere filmpjes?

  • User profile image

    I t was very interesting. I was wondering if anyone knows the reason behind a specifict F# design decision.

    About the pipe operator: |>
    Why is a |> b c interpreted as a |> (b c) instead of (a |> b) c ? Isn't left to right most logical?

    A more specific example:


    let multiply a b = a * b;;

    let substract a b = a - b;;


    multiply 2 3 |> substract 10;;
    returns 4

    so it is interpreted as:
    multiply 2 3 |> (substract 10);;

    while it seems logical to interpret this as:
    (multiply 2 3 |> substract) 10;;



    furthermore, in response to the question from your audience, about inserting the middle parameter, you could have answerd:

    let answer a b c = a / b - c;;


    if you want to insert the middle parameter b,


    (multiply 2 3 |> answer 30) 4;;

    will yield the desired result...

Add Your 2 Cents