Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to F# 3.0

Introduction to F# 3.0

Seminar talk in OOP undergraduate course.

Aggelos Biboudis

January 11, 2013
Tweet

More Decks by Aggelos Biboudis

Other Decks in Programming

Transcript

  1. Functional Programming in a slide (not; but a quick enough)

    • FP emphasizes application of functions • Epic Functions are Epic!!!!! (as in math!) – Avoid State and Mutation – Call the function twice and get the same answer – First class in FP • Imperative, changes in state • Foundations on lambda calculus (Alonzo Church in the 1930s’) – Function definition – Function application – Recursion
  2. Functional, Imperative, OOP • C  Imperative • C++ 

    OOP first, preserving the imperative character, recently multiparadigm (C++11) • C#  OOP, multiparadigm, functional elements Declarative programming, expresses what the program should accomplish without prescribing how to do it
  3. Some history • (1970) ML by Robin Milner, University of

    Edinburgh – Hindley–Milner type inference algorithm – Simply typed polymorphic lambda calculus • ML -> StandarML -> Caml -> OCaml unifying functional, OOP and imperative • (2005) F# by Don Syme, Microsoft Research • F# is essentially a .NET adaptation of OCaml bringing the power of FP to .NET
  4. An open source compiler “This source code is under the

    Apache 2.0 license and is published as part of the F# PowerPack codeplex project, which is now also under the Apache 2.0 license. The F# PowerPack now includes libraries, tools and the compiler/library source code drops. “
  5. Getting F# • F# on Mac • F# on Linux

    • F# on Windows • F# on Android and iOS • F# on HTML5, GPGPU and more...
  6. Books • About F# – Expert F# 2.0 (now updated

    to 3.0) – Real-World Functional Programming – Beginning F# – Programming F# – F# For Scientists – Visual F# 2010 for Technical Computing – Professional F# 2.0 • And more general about programming languages through F# – Programming Language Concepts
  7. Links • On the Web – http://fsharp.org/ – http://fsharp.github.com/ –

    http://fsharp.net/ (Visual Studio edition) – http://fsharp.github.com/fsharp (Open Source edition) – http://research.microsoft.com/fsharp – http://www.tryfsharp.org/ – Don Syme - http://blogs.msdn.com/dsyme – http://code.msdn.microsoft.com/fsharpsamples – http://blogs.msdn.com/b/timng/archive/2010/04/05/f-object-oriented-programming-quick- guide.aspx?wa=wsignin1.0 • Community – F# open source list – News from F# blogs – GitHub and CodePlex projects – F# code snippets – Ask on StackOverflow – Join Twitter conversations – F# on IRC
  8. ENOUGH WITH THE LOGISTICS JUST SHOW ME THE CODE.. F#

    interactive action, driven by Expert F# 2.0;;