Errata
I tried to minimize the number of errors in the book as hard as I could. However, some errors are (unfortunately!) inevitable. This page contains the list of known issues. If you spot an issue that isn't listed on this page, please let me know either using the book forum or send me an email to tomas@tomasp.net.
Chapter 3
- Page 65, first paragraph There is a typo in the following sentence: "Rather than
adding the method to the
Type<T1, T2>class from listing 3.7, we implement it as an extension method." The name of the class isn'tType<T1, T2>, but should instead beTuple<T1, T2>. - Page 68, Section 3.3, second paragraph There is a confusing grammar error. The sentence "The type that represents functional lists is either an empty or is composed ..." should be "The type that represents functional lists is either an empty list or is composed ...".
Chapter 4
- Page 83, Listing 4.2 On the third line of the listing I use a function
List.ofseq, which is a wrong name. The correct name of the function isList.ofSeq(with uppercase "S"). The line should look like this:let cells = List.ofSeq(csvLines.Split(',')) - Page 101, Listing 4.11 When calling
MeasureString, we give itlblvalue as the first argument, but this value isn't declared anywhere. It should be thetitleparameter instead:let size = gr.MeasureString(title, fnt)
Chapter 5
- There is an additional word "them" in the last sentence of section 5.4.3. "We'll talk about generic functions in detail
themlater, but for now..."
Chapter 6
- Page 155 The last line of the second inline code example is missing a closing
parenthesis ")". It is the example that shows how to use
mapfunction instead of the innermatchparameter instead. The line should be:| Some(first) -> readInput() |> Option.map (fun second -> first + second)
Chapter 9
- Page 241 The last line on the page says "We can break the >NET rules when...". The correct version should be of course ".NET".
- Page 248, Listing 9.14 The second line from the end of the listing shows
a wrong F# Interactive output. The listing shows
Client: John Doe, q=16, but the actual output should beClient: John Doe, loan coefficient: 16
Chapter 11
- Page 311, Listing 11.22 The text below the listing says "To specify what should be
displayed, we set the
DataMemberproperty to the name...". The name of the property should beDisplayMember(the listing itself is correct).

About the Book