Records in F#
March 4, 2017 Leave a comment
Records in F# are similar to objects in OOP languages. They can have named fields and other members. However, like many other elements in F#, they are immutable.
Here’s how to declare a record of type Book with a couple of fields and a function:
type Book = { title: string; numberOfPages:int; author: string } with member this.takesLongTimeToRead = this.numberOfPages > 500
Here’s how we can declare a new Book:
let myBook = {title = "F# for beginners"; numberOfPages = 600; author = "John Smith"}
We didn’t need to declare its type explicitly.
We can access the record members with the dot notation:
printfn "Book title: %s" myBook.title let longTimeOrNot = myBook.takesLongTimeToRead
Book title: F# for beginners
val myBook : Book = {title = “F# for beginners”;
numberOfPages = 600;
author = “John Smith”;}
val longTimeOrNot : bool = true
View all F# related articles here.