F# is also compatible with core Caml; and many Caml libraries and
applications can cross-compile either directly or with minor
conditionally-compiled changes. This provides an easy path for cross-
compiling and/or porting existing Caml code to .NET.
Some F# features:
F# is the first ML language where all the types and values in an ML
program can be accessed from some significant other languages (e.g.,
C#) in a predictable and friendly way.
F# was the first released .NET language to produce Generic IL, and the
compiler was designed partly with this language in mind. The compiler
can also produce (non-generic) v1.0 or v1.1 .NET binaries.
F# supports features that are often missing from ML implementations
such as Unicode strings, dynamic linking, preemptive multithreading
and SMP machine support.
F# for developers:
The interactive environment fsi.exe supports top-level development and
exploration of the dynamics of your code and environment.
The command line compiler fsc.exe supports separate compilation, debug
information and optimization.
F# comes with F# for Visual Studio, an extension to Visual Studio 2003
and Visual Studio 2005 that supports features such as an integrated
build/debug environment, graphical debugging, interactive syntax
highlighting, parsing and typechecking, IntelliSense, CodeSense,
MethodTips and a simple project system.
F# can be used with tools from the .NET Framework, Microsoft's Visual
Studio and many other .NET development tools.
F# comes with an ML compatibility library that approximates and
extends some of the OCaml 3.06 libraries. This means you don't have to
use .NET libraries if it is not appropriate. It is possible to write
large and sophisticated applications that can be cross-compiled as
OCaml code or F# code, and we take this mode of use very seriously.