¡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 y a la espera del garbage colector.
Un número, como por ejemplo 100, es interpretado como un integer de 32 bits, si queremos que sea un short escribiríamos 100s. Los tipos de datos que existen son:
La forma de expresar números es:
0x7F.0o103.0b1001.