C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Let: In the let statement we create a new record instance. We designate a cat with weight 12 and no wings.
With: In the next let statement, we create a dog. We copy the cat and change the name to "dog."
Finally: We create a bird record by modifying both the Name and the Wings fields in a previous record.
F# program that uses records
type Animal = { Name:string; Weight:int; Wings:bool }
// Create an instance of Animal named cat.
let cat = { Name="cat"; Weight=12; Wings=false }
// Display the cat record.
printfn "%A" cat
// Display the Name, Weight and Wings properties.
printfn "%A" cat.Name
printfn "%A" cat.Weight
printfn "%A" cat.Wings
// Modify an existing record.
// ... Set name to "dog."
let dog = { cat with Name="dog" }
printfn "%A" dog
let bird = { cat with Name="bird"; Wings=true }
printfn "%A" bird
Output
{Name = "cat";
Weight = 12;
Wings = false;}
"cat"
12
false
{Name = "dog";
Weight = 12;
Wings = false;}
{Name = "bird";
Weight = 12;
Wings = true;}
F# program that shows mutable error
type ExampleRecord = { size:int; valid:bool }
let example = { size=10; valid=true }
// This causes an error: cannot be compiled.
example.size <- 20
Output
error FS0005: This field is not mutable