FACTOID # 132: Central European men don’t teach. In Hungary, the Czech Republic, and Slovakia, over 75 percent of lower secondary teachers are female.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > F Sharp programming language

F# (pronounced F sharp) is a functional and object oriented programming language for the Microsoft .NET platform. A strength of F# is its setting within .NET. A key design aim is seamless .NET interoperability, both via direct use of .NET APIs from F# and authorship of natural .NET components in F#. Consequently, the main F# libraries are the .NET libraries themselves (e.g. DirectX, Windows Forms, and ASP.NET, as well as alternatives like Gtk#). A Visual Studio plugin provides a graphical development environment, including features such as background type-checking with feedback under the mouse, which is extremely helpful for those unfamiliar with type inference. Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. ... In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ... A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... Microsoft . ... Gtk#, a GUI Toolkit, is a set of . ... Type inference is a feature present in some strongly statically typed programming languages. ...


F# is developed by Microsoft Research, and has a core language that is similar to that of the Caml language: both are members of the ML programming language family. Microsoft Research (MSR) is a division of Microsoft created in 1991 for researching various computer science topics and issues. ... CAML may mean: Categorical_Abstract_Machine_Language, a version of ML Collaborative Application Markup Language, an XML-Based markup language used with the Microsoft SharePoint collaborative portal application. ... ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of...


F# also provides a standard library of its own, designed to be largely compatible with the OCaml standard library. Since the two languages also share a common language subset, it can thus be quite practical to compile a single codebase with both. This enables core Caml code to be ported to the .NET world, and core F# code to run with OCaml. Maintaining this basic compatibility is one of the primary goals of the project.


As a research project, F# demonstrates how .NET enables interoperability between different programming paradigms. It showcases a set of extensions to .NET's intermediate language IL, called ILX, which demonstrate how a strict curried functional language may be compiled efficiently. A programming paradigm is a paradigmatic style of programming (compare with a methodology, which is a paradigmatic style of doing software engineering). ... In mathematics, computer science and linguistics (semantics), currying or Schönfinkelisation[1] is the technique of transforming a function that takes multiple arguments into a function that takes a single argument (the other arguments having been specified by the curry). ...


Version 1.9.1.9 was released on May 1, 2007.

Contents

Applications

The F# programming language has many applications ranging from scripting to cross-platform application development.


The properties of the F# language and environment make it an 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. F# provides the performance of a compiled language (typically close to that of C) with the sophisticated language features of high-level languages, including safety, static typing, pattern matching, views, higher-order functions and currying. Fortran (previously FORTRAN[1]) is a general-purpose[2], procedural,[3] imperative programming language that is especially suited to numeric computation and scientific computing. ... Mathematica is a general computing environment, organizing many algorithmic, visualization, and user interface capabilities within a document-like user interface paradigm. ... Wikibooks has a book on the topic of C Programming The C programming language (often, just C) is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ...


The F# environment includes the ability to run interactive sessions, allowing users to run pieces of code at will, collecting and analysing the results without having to compile whole programs. Moreover, visualizations can be spawned from interactive sessions, giving F# the essential functionality of many expensive technical computing environments.


F# also provides easy access to a foreign function interface, allowing libraries such as LAPACK and FFTW to be used with only a small amount of binding code. LAPACK, the Linear Algebra PACKage, is a software library for numerical computing written in Fortran 77. ... FFTW, for Fastest Fourier Transform in the West, is a software library for computing discrete Fourier transforms (DFTs), developed by Matteo Frigo and Steven G. Johnson at the MIT Laboratory for Computer Science. ...


Examples

A few small samples follow:

 open System (* This is a comment *) (* Sample hello world program *) printf "Hello World!" 
 #light open Microsoft.FSharp.Collection.List;; (* print a list of numbers recursively *) let rec printlist l = (* When using "#light", you must indent with 4 spaces *) if l = [] then else printf "%dn" (nth l 0) printlist (tl l) 
 (* Sample Windows Forms Program *) open System.Windows.Forms (* Create a window *) let form = new Form(Visible=true, TopMost=true, Text="Welcome to F#") (* Create a label to show some text in the form *) let label = temp = new Label() let x = 3 + (4 * 5) (* Set the value of the Text*) temp.Text <- x (* Remember to return a value! *) temp (* Add the label to the form *) do form.Controls.Add(label) (* Finally, run the form *) do Application.Run(form) 

F# is compatible with the XNA Game Studio Express product, which permits construction of games for Windows and for the Xbox 360. Microsoft XNA (XNAs Not Acronymed[1]) is a set of tools, complete with a managed runtime environment, provided by Microsoft that facilitates computer game design, development and management. ...


See also

C# (pronounced see-sharp) is an object-oriented programming language developed by Microsoft as part of their . ... Objective Caml (OCaml) is a general-purpose programming language descended from the ML family, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. ...

Books

Three books on F# are due to be published this year, including the first formal description of the language by its creator.


External links


  Results from FactBites:
 
f: Definition and Much More from Answers.com (1436 words)
In biochemistry, F is the symbol for phenylalanine.
F is the symbol for farad, the SI derived unit for electric capacitance.
In radiocommunication, F is one of the ITU prefixes allocated to France.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.