slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
F# PowerPoint Presentation


223 Vues Download Presentation
Télécharger la présentation


- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. F# Shiva Srivastava David He Peter Bingel

  2. Overview • F# (pronounced "F sharp") is a functional and object orientedprogramming language for the Microsoft .NET platform • A strength of F# is its setting within .NET • The core language is similar to that of the Objective Caml language: both are members of the ML programming language family. • Like the Scala programming language, it implements a functional programming language on top of a platform originally designed for object-oriented programming paradigm. • The F# environment includes the ability to run interactive sessions, allowing users to run pieces of code at will, collecting and analyzing the results without having to compile whole programs.

  3. Problem Domain • The F# programming language has many applications ranging from scripting to cross-platform application development • Ideal platform for scientific computing, filling the gap between low-level but high-performance numerical languages like Fortran and high-level but slow languages like Mathematica • Can be spawned from interactive sessions, giving F# the essential functionality of many expensive technical computing environments.

  4. History • F# was initially developed by Microsoft Research, but now is being developed by Microsoft developer division after it was announced on October 17, 2007 that F# will be productized as a fully integrated language in Visual Studio[1]. The latest released version,, was released on July 31, 2007. • F# is derived from a series of different imperative and functional languages as are most modern languages (including Java and C). • At the heart of F# lies Objective Caml, or OCaml, and the .NET language C#. • So, let's leave it at this: F# is, in essence, another dialect, or "manifestation" as Microsoft calls it, of a functional ML-like language mixed with the power of C#.

  5. Language Concepts • interactive scripting like Python • the foundations for an interactive data visualization environment like MATLAB • the strong type inference and safety of ML • easy access to the entire range of powerful .NET libraries and database tools • The only language that is scripted/ functional /imperative/ object-oriented

  6. Defining Variables let x = 3 + (4 * 5) let res = (if x = 23 then "correct" else "incorrect")

  7. Hello World Program • let x = "Hello World";; System.Console.WriteLine(x);;

  8. Interesting features • F# includes support for the foundational features of functional programming including tuples, lists, options, function values, local function definitions, pattern matching and sequence expressions. • The powerful type inference mechanisms of F# allow code to be both succinct and yet fully type-checked. • F# also includes support for advanced functional programming constructs such as active patterns and computation expressions. Computation expressions can be used to express data queries and client/server modalities in AJAX-style web programming. They enable programmers to write succinct and robust reactive agents through the use of asynchronous workflows. Computation expressions are related to ``monads'' in Haskell. • F# embraces object-oriented programming and includes support for type-inferred, succinct descriptions of object types. • F# allows types and values in an F# program to be accessed from other .NET languages in a predictable and friendly way. • F# includes support for a form of meta-programming, inspired by LINQ. This allows data queries to be expressed and type-checked in F# code and then dynamically compiled and translated to target languages such as SQL using the LinqToSql framework. • F# fully supports .NET generics and the language was designed partly with this in mind. • Through .NET, F# supports advanced language and runtime features such as Unicode strings, dynamic linking, preemptive multithreading, and SMP support.

  9. Comparison with OCML • Some identifiers are now keywords. • null, inline • Some operator names are used for quotations. • <@ some string @> • There are some minor parsing differences. • !x.y.z • !(x.y.z) • (!x).y.z. • Two top-level definitions with the same name are not allowed within a module or a module type. • let x = 1 • let x = 3

  10. F# Vs OCml

  11. Similarities To Other Languages • interactive scripting like Python, • the foundations for an interactive data visualization environment like MATLAB, • the strong type inference and safety of ML, • a performance profile like that of C#, • a foundational simplicity with similar roots to Scheme,

  12. Sources • Microsoft • • Wikipedia •