An Introduction to Microsoft F#

Sign in to queue

Description

Learn about Microsoft's new language, F#, a typed functional programming language for the Microsoft .NET Framework. F# combines functional programming with the runtime support, libraries, tools, and object model of .NET. Understand how F# asynchronous workflows help tame the complexity of parallel and asynchronous I/O programming and how to use F# in conjunction with tools such as Parallel Extensions for .NET.
  • Luca Bolognese

Embed

Download

Download this episode

The Discussion

  • User profile image
    stevo_
    This is really really cool, exactly what I've wanted to see in regards to F#.. I've seen so many little examples that really didn't help me envisage using this every day..

    let the |> fun commence

    (hurr!)
  • User profile image
    CbrAInK
    Wow - this the best show I've seen here so far - it even outperforms "don't fear the monads" Smiley
    Hope to see more of this stuff around.

    Thanks for the fun !
  • User profile image
    Art Scott
    Appaluse!

    Encore.
  • User profile image
    SneakerXZ
    Yea, I really enjoyed this presentation . One of best. It gives nice tasting of F#. I recommend this. 
  • User profile image
    birbilis
    regarding the pipeline (|>) operator example: couldn't one just write Seq.sum(Seq.map(nums,sqr) and get done with it?
  • User profile image
    ysw

    |> is like . (dot) in C# - especially when talking about extension methods.

  • User profile image
    gustavo
    Thank you so much.  So much F# in so little time.  I've already had some fun with this language, and your presentation helps me to understand how to solve some practical business problems (like I do with C# and VB.NET, presently).

    Kudos!
  • User profile image
    mspan

    Great Presentation!
    I am watchin git for the second time and coding along through the demo. However,  I am getting an error in the StockAnalyzer type... 

    type StockAnalyzer (lprices, days) =

    let prices =
            lprices
            |> Seq.map snd
            |> Seq.take days
    static member GetAnalyzers (tickers,days) = 
        tickers
        |> Seq.map loadPrices
        |> Seq.map (fun prices -> new StockAnalyzer (prices, days))
    member s.Return = 
        let lastPrice = prices |> Seq.nth 0
        let startPrice = prices |> Seq.nth (days - 1)    
        lastPrice / startPrice -1.

    ... the last line is not working ... getting "This value is not a function and cannot be applied" error when mouseover startPrice variable. Any advice for f# newbie? I am running the 1.9.6.2 version of f# with VS  integrated shell.
    Thanks!
    mspan
    www.fsharpener.blogspot.com

  • User profile image
    elvistcb3577
    Isn't something like this more succinct but just as expressive without losing the declarative nature?

    exm.

    let sumOfSquares nums = sum (each nums sqr)

    sumOfSquares [0,2,5,8]
  • User profile image
    hossein.​haeri
    Very great presentation. Thanks Luca. Smiley

    The async stuff didn't work for me. In fact, neither AsyncGetResponse nor AsyncReadToEnd exist in my version (.Net 3.5 under MSVS2008). The Plot function of Graphics is also not available. Seems to me like a special library is needed...
  • User profile image
    krusaint
    Really good presentation. Looking forward for more of F#.
  • User profile image
    seiichirou
    elvistcb: yes there is:
    (define (sum-of-squares nums) (fold-left + (map sqr nums)))
    (sum-of-squares '(0 2 5 8))
  • User profile image
    Xylon
    This is the best presentation I've ever seen come out of MSFT! Congrats. As a fresh CS grad, I've heard academic whispering about functional programming but have never had the opportunity nor took the initiative to dig any deeper and learn it for myself. I'm excited that a pragmatic, .NET interoperable, first-class functional language is on the way from Microsoft. Great work guys! After 20-odd years following the computer industry I've never been happier with Microsoft. F# (and Oslo) show that Microsoft is not being complacent. And after Apple's all-style-no-substance "I'm a Mac; I'm a PC" campaign I even find myself rooting for MSFT. But I'm rambling in short great work on F# and a great introductory presentation with a sprinkling of humour Smiley.
  • User profile image
    Joiseystud

    Awesome video. 

  • User profile image
    RAJENDER P. REDDY

    Good Presentation!

    After the presentation, I had some fun with this F#. 

    It's an interessting language like C#.

    Thanks.

    -Raja

    +1 404 424 4674

  • User profile image
    indulge

    In regard to the examples, can you share the C# utilities and .dll files? 

    Thanks,

  • User profile image
    indulge

    Can you post the code files used in the demo/talk?

    Thanks

  • User profile image
    sean r

    Superb presentation, thanks.

  • User profile image
    StockTrader

    Hello Luca,

     

    this video is fantastic!! Very intetresting. This F# remembers me the time when I was studing ML.

    Seems very very promising.

     Saluti da Reading - UK

     Marcco -- StockTrader

  • User profile image
    koistya

    This is one of the greatest presentations. Thanks Luca, you're damn good)

  • User profile image
    Zibri

    Non capisco una cosa: lavori in Microsoft e mi sembri una persona in gamba, perche' non fai un bel corso di pronuncia inglese? Neanche nei film gli italiani parlano inglese in quel modo! :)
    -----
    I don't understand one thing: you are a Microsoft employee and yet you don't know how to pronounce english? Not even in movies italians pronounce english that way! :D

  • User profile image
    JimLewis

    Bravissimo!

  • User profile image
    Rustan

    nice =)

  • User profile image
    Krishna_​Nadiminti

    Excellent talk mate.

  • User profile image
    g

    @birbilis: more compact yes, simpler to understand no

  • User profile image
    Anthony

    Concise and entertaining one-hour intro to F#.
    Excellent 

  • User profile image
    FD

    @birbilis:
    Pipelining functions with classical C-Syntax gets messy when you have many functions with many parameters.
    Syntax itself changes the way you percieve programming -- it does indeed matter. If you use C# with and without LINQ, you notice how massive the difference between a functional approach and a sequential/imperative approach can be.
    I'm a big fan of the new functional features emerging in .NET, and this takes it a step further.

  • User profile image
    Peter

    @Zibri:I am American and had no trouble understanding him.  His English is excellent.  Very nice video!

  • User profile image
    bewnet

    What an amayzing presentation!
    Teachs a lot! And the examples are practical application than to play with list of numbers and characters.
    Cheeeeeeeeeeeeeeerrrrrrrsssss

  • User profile image
    preets

    Such a relaxed presentation ! Good one Smiley

  • User profile image
    Alomgir A Miah

    This is really an awesome presentation. Thanks

  • User profile image
    Sam

    The best accent I've ever heard! :)

  • User profile image
    Sam

    The best accent I've ever heard! :)

  • User profile image
    Sam

    The best accent I've ever heard! :)

  • User profile image
    Jason

    Excellent presentation!! Informative and comical at the same time

  • User profile image
    Victor

    Hi!
    I entered the same code as in 38:11 but when I type "grid prices;;", I get "C:\Users\Victor\AppData\Local\Temp\stdin (4,1): error FS0039: The value or constructor ' grid ' is not defined"
    How can I solve the problem. Thanks for your reply!
    Great video by the way!
    /Victor

  • User profile image
    Donna​Malayeri

    @Victor: thanks for your interest!  The best place to ask these questions is over at the MSDN F# forum (http://social.msdn.microsoft.com/Forums/en-US/fsharpgeneral/threads). The short answer to your question is that Luca had already defined "grid" in his project. If you want to use these sorts of charting features in your F# programs, check out this blog post (http://blogs.msdn.com/b/fsharpteam/archive/2011/04/15/getting-started-with-fsharpchart.aspx).

  • User profile image
    murph

    Great presentation. Shame it wasn't helped with some of the sad attempts at gotcha questions at the end. The biggest problem with this industry is the type who just want to demonstrate to them how 'smart' they are.

  • User profile image
    sm0606

    The code for getting the prices in C# using LINQ. It's kind of the same and little shorter.

    var prices = csv.Split('\n')
    .Skip(1)
    .Select(line => line.Split(','))
    .Where(values => values.Length == 7)
    .Select(values => new { Date = DateTime.Parse(values[0]), Price = values[6] });

Add Your 2 Cents