Introduction
What is F Sharp?
The blurb from the F Sharp site describe it as: "F# is a mixed functional/imperative programming language based on the design of the functional language Caml and the .NET language C#."
Why F Sharp?
I’ve always been interested in functional programming, I like its simplicity, but even functional programming fans will tell you that although functional programming makes some problems very easy to solve, it makes others very difficult. I think this makes functional programming and the .NET framework a good fit as in theory the .NET framework offers you the chance to solve a problem using the most appropriate language.
F# seems to be the most fully developer functional language for the .NET framework so I’ve spent most time investigating it. Also F# is not a pure functional language; this is very help with trying to interoperate with class libraries written in other languages which are not functional then you can not hope to keep things purely functional.
It is true functional programming is not used much commercially. But, not all good ideas in programming languages are used in commercial situations and for me functional languages represent a rich vein of untapped good ideas. I think F# help take those ideas a step closer to being useful, but only time will tell.
Detail
F# is a programming language that provides the much sought-after combination of type safety and scripting, with all the advantages of running on a high-quality, well-supported modern runtime system. F# gives you a combination of
- interactive scripting like Python,
- a mathematical approach to programming like that of MatLab,
- the strong type inference and safety of ML,
- a cross-compiling compatible core shared with the popular OCaml language,
- a performance profile like that of C#,
- as many libraries as VisualBasic.NET,
- a foundational simplicity with the same roots as Scheme,
- the option of a first-class Visual Studio integration,
- the experience of a first-class team of language researchers with a track record of delivering high-quality implementations,
- the speed of native code execution on the concurrent, portable, and distributed .NET Framework?
The only language to provide a combination like this is F# (pronounced FSharp) - a scripted/functional/imperative/object-oriented programming language that is a fantastic basis for many practical scientific, engineering and web-based programming tasks.
F# is a pragmatically-oriented variant of ML that shares a core language with OCaml. F# programs run on top of the .NET Framework. F# includes extensions for working across languages and for object-oriented programming, and it works seamlessly with other .NET programming languages and tools. For further information, read about F# in more detail and follow the links below.
Announcements
Starting points
Đặng Trần Thọ
(tổng hợp từ strangelights.com và microsoft.com)