¡Esta es una revisión vieja del documento!
Puedes poner la clausula #light al principio de cada archivo de código. Esto hace que lo escrito en ese archivo permita una sintaxis más olgada, ya que por defecto F# es compatible con OCaml y este tiene una sintaxis muy restrictiva.
Para F# es importante el espaciado, es decir, los espacios tendrán relevancia en el código ya que código verticalmente alineado está considerado semánticamente relacionado.
Los comentarios serán…
// This is a single-comment. Everything from the start is treated as a comment. (* This is a multiline comment *) /// This is a doc comment that can be converted to useful documentation.
En F# cada “comando” de código es una expresión, esto significa que todo comando genera un valor de un tipo de datos concreto.
El comando open sería el equivalente a using de C#, open importa un namespace de una librería .NET (y, como en C#, necesitas hacer referencia a la DLL correspondiente).
Por defecto se agregan los siguientes namespaces: Microsoft.FSharp.Core (tipado de datos), Microsoft.FSharp.Core.Operators (operadores), Microsoft.FSharp.Collections (colecciones), Microsoft.FSharp.Control (construcciones de lazy evaluation y flujos asíncronos), Microsoft.FSharp.Text (funciones de IO).
Te permite evaluar expresiones de F#, es el ejecutable fsi.exe (con mono es fsharpi). Sobre esta podemos lanzar comandos como…
printfn "Hello world!";; #r "System.Web.dll";;
La consola evaluará el código una vez se introduzcan dos puntos y coma: ;;.
Es el “fsc.exe”.
Los datos en F# no se asignan sino que se enlazan. Esto significa que al hacer:
let x = 3
Se enlaza x con el símbolo o, en este caso, valor numérico 3, si luego se volviese a enlazar con otro valor el 3 quedaría abandonado.