Search This Blog

Monday, January 5, 2009

About the F# Language

F# (pronounced F Sharp)comes from a family of languages that were spawned by a language created in the late 1970s known as ML or MetaLanguage. The ML language has a special type inference algorithm built into it that allows it to infer the types of most expressions automatically. This allows the language to feel dynamically typed like many scripting languages while actually being statically typed. F# behaves this way as well. In F#, you can declare types but you don't often need to do it.

More recently, F# is a derivative of a language known as Objective Caml (or OCaml) which extended Caml (Categorical Abstract Machine Language), an ML derivative, by adding certain object-oriented capabilities to it. F# has a high degree of compatibility with OCaml source code as a result.

F# is not just a functional language, however. It's a multi-paradigm language that allows for functional programming as well as imperative programming.

F# supports the .NET typing model including:

Interface implementation
All types in F# ultimately derive from the .NET type System.Object so the model is completely unified and compatible with other .NET languages.

No comments: