Presentation is loading. Please wait.

Presentation is loading. Please wait.

F# Shiva Srivastava David He Peter Bingel. Overview F# (pronounced "F sharp") is a functional and object oriented programming language for the Microsoft.NET.

Similar presentations


Presentation on theme: "F# Shiva Srivastava David He Peter Bingel. Overview F# (pronounced "F sharp") is a functional and object oriented programming language for the Microsoft.NET."— Presentation transcript:

1 F# Shiva Srivastava David He Peter Bingel

2 Overview F# (pronounced "F sharp") is a functional and object oriented programming language for the Microsoft.NET platformfunctionalobject oriented programming languageMicrosoft.NET 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.Objective CamlML programming language Like the Scala programming language, it implements a functional programming language on top of a platform originally designed for object-oriented programming paradigm.Scala programming language 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 MathematicaFortranMathematica 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, 1.9.2.9, 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. – 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 http://research.microsoft.com/fsharp/ Wikipedia http://en.wikipedia.org/wiki/F#


Download ppt "F# Shiva Srivastava David He Peter Bingel. Overview F# (pronounced "F sharp") is a functional and object oriented programming language for the Microsoft.NET."

Similar presentations


Ads by Google