Errata

May 5, 2018
Thank you for purchasing Get Programming with F# . Please post any errors, other than those listed below, in the book's Author Online Forum. We'll compile a comprehensive list and publish it here for everyone's convenience. Thank you!

Listing 16.2 - collect

Page 190: Missing colon between "Town" and "string."

Before:

type Customer = { CustomerId : int; Orders : Order list; Town string }

After:

type Customer = { CustomerId : int; Orders : Order list; Town : string }

Listing 20.8 - Matching against lists

Page 240: Rename the function handleCustomer.

Before:

 let handleCustomer customers =

After:

 let handleCustomers customers =

23.1 - Specific types in F#

Page 271: Misleading text between records and classes.

Before: You're using an F# record here, but you could imagine this to be a C# class; it'd look fairly similar. Yet it's not a great fit for the preceding requirements.

After: You're using an F# record here, but you could imagine this to be a C# class; it'd look fairly similar. Yet a class isn't a great fit for the preceding requirements.

26.1 - Working with NuGet with F# Projects

Page 313: Remove unnecessary and misleading word "single."

Before: You use triple-quoted strings here to allow you to use single quotes within the string...

After: You use triple-quoted strings here to allow you to use quotes within the string...

37.2.1 - Abstracting HTTP codes from F#

Word "response" is mispelled in multiple locations.

Listing 37.4 - Mapping between F# and HTTP domains

Page 446

Before:

 match result with
| Some result -> request.CreateReponse(HttpStatusCode.OK, result)
| None -> request.CreateReponse(HttpStatusCode.NotFound)

After:

 match result with
| Some result -> request.CreateResponse(HttpStatusCode.OK, result)
| None -> request.CreateResponse(HttpStatusCode.NotFound)

Listing 37.4 - Mapping between F# and HTTP domains

Page 446

Before: Also, notice the explicit type annotation on the createReponse argument.

After: Also, notice the explicit type annotation on the createResponse argument.

Now you try

Page 447

Before: Update the asReponse function so that it caters to Some Failure and Some Success cases instead of just Some.

After: Update the asResponse function so that it caters to Some Failure and Some Success cases instead of just Some.