Comments

// Single line comment
(* Multi-line
comment *)

Strings

"foo \"bar\" baz"
'foo \'bar\' baz'
@"Verbatim strings"
"""Alternate "verbatim" strings"""

Numbers

//8 bit Int
86y
0b00000101y
//Unsigned 8 bit Int
86uy
0b00000101uy
//16 bit Int
86s
//Unsigned 16 bit Int
86us
//Int
86
86l
0b10000
0x2A6
//Unsigned Int
86u
86ul
//unativeint
0x00002D3Fun
//Long
86L
//Unsigned Long
86UL
//Float
4.14F
4.14f
4.f
4.F
0x0000000000000000lf
//Double
4.14
2.3E+32
2.3e+32
2.3e-32
2.3e32
0x0000000000000000LF
//BigInt
9999999999999999999999999999I
//Decimal
0.7833M
0.7833m
3.m
3.M

Full example

// The declaration creates a constructor that takes two values, name and age. 
type Person(name:string, age:int) =
    // A Person object's age can be changed. The mutable keyword in the 
    // declaration makes that possible. 
    let mutable internalAge = age

    // Declare a second constructor that takes only one argument, a name. 
    // This constructor calls the constructor that requires two arguments, 
    // sending 0 as the value for age. 
    new(name:string) = Person(name, 0)

    // A read-only property. 
    member this.Name = name
    // A read/write property. 
    member this.Age
        with get() = internalAge
        and set(value) = internalAge <- value

    // Instance methods. 
    // Increment the person's age. 
    member this.HasABirthday () = internalAge <- internalAge + 1

    // Check current age against some threshold. 
    member this.IsOfAge targetAge = internalAge >= targetAge

    // Display the person's name and age. 
    override this.ToString () = 
        "Name:  " + name + "\n" + "Age:   " + (string)internalAge