Skip to Main Content
Professional F# 2.0
book

Professional F# 2.0

by Ted Neward, Aaron C. Erickson, Talbott Crowell, Richard Minerich
June 2010
Intermediate to advanced content levelIntermediate to advanced
432 pages
10h 44m
English
Wrox
Content preview from Professional F# 2.0

Chapter 7. Complex Composite Types

WHAT'S IN THIS CHAPTER?

  • Understanding type abbreviations

  • Working with enums

  • Creating discriminated unions

  • Understanding structs

  • Working with record types

Complex composite types serve as a bridge between the simple composite types explored in Chapter 5, such as tuples, options, and the collection types (list, array, sequence, set, and map), and the more traditional class types explored in Chapter 8. Unlike the simple composite type made up of multiple elements of a single type, the complex composite type is marked by the multiple parts that form the complex composite type, such as individual elements made up of other types.

TYPE ABBREVIATIONS

One of the drawbacks to tuples is that the tuple, in its basic form, remains unnamed — lexically speaking, it's harder to talk about passing string * string * int * float types around than it is to talk about passing around instances of Employee.

Fortunately, F# alleviates this problem (for more than just tuples) by allowing for type abbreviations, which actually are nothing more than name declarations for existing type names:

type MenuItem =
    string * string * float

type RestaurantMenu =
    MenuItem list

In all other respects, the types behave as they've done normally:

let diner : RestaurantMenu = [
    ("Grand Slam", "Two eggs, two bacon, three hotcakes",2.99);
    ("Chicken strips", "Five strips and sauce", 3.99)
]
for (name, desc, price) in diner do
    System.Console.WriteLine("{0} costs {1}", name, price)
                                                  

It's important to note ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

The Book of F#

The Book of F#

Dave Fancher
Beginning F# 4.0

Beginning F# 4.0

Robert Pickering, Kit Eason

Publisher Resources

ISBN: 9780470528013Purchase book