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't Type<T1, T2>, but should instead be Tuple<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 is List.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 it lbl value as the first argument, but this value isn't declared anywhere. It should be the title parameter 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 them later, 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 map function instead of the inner match parameter 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 be Client: 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 DataMember property to the name...". The name of the property should be DisplayMember (the listing itself is correct).