O'Reilly logo

Professional F# 2.0 by Richard Minerich, Talbott Crowell, Aaron C. Erickson, Ted Neward

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required