What is the F# language created to
accomplish?
The F# research project sought to create a variant of the OCaml language running on top of the .Net platform. A related project at MSR Cambridge, SML.NET, did the same for Standard ML. (OCaml and Standard ML are both variants of the ML language.) The motivations for this might have included
- Showing it can be done.
- Publishing scientific papers showing it can be done.
- Because ML is incredibly cool.
This shouldn’t distract you from the fact that the F# product is a general-purpose programming language for the .Net platform. The benefits of F# extend across all domains. There may be users who are adopting F# more rapidly – scientific and financial programming are often mentioned – but the real reason for that is because those organizations are more amenable to adopting new technology (small teams, smart people, few managers).
Is it made for a specific platform for
example Desktop, Mobile Devices, Web
Applications?
No.
Also did it include features not
available in other programming
languages that are currently available
for developing .NET applications?
Yes. They include:
- Algebraic datatypes
- Pattern matching
- Type inference
- Succinct syntax
- Sequence expressions
- Asynchronous workflows
- Units of measure
Also is it still possible to create
applications for the desktop, mobile,
and web using F# as we can using VB or
C#?
Yes but the tooling in VS2010 is incomplete. In particular, anything involving code-generation isn’t well supported e.g. WPF code-behind and the Winforms designer. This may not be a problem in practice. For instance WPF with MVVM works fairly well.
Also are there other languages similar
to F# that I can use to cross check
against to get a better understanding
how functional programming works?
Yes. Have a look at these:
- Standard ML
- OCaml
- Haskell
- Clojure
[Edit: Added comment about tooling in VS2010.]