Book Cover

Programming in Haskell

2nd Edition


Page 12. The phrase "can inferred" should be "can be inferred".

Page 74. The phrase "i captured" should be "is captured".

Page 81. The phrase "three of" should be "three or".

Page 86. The defintion for rmdups should be as follows:

     rmdups []     = []
     rmdups (x:xs) = x : rmdups (filter (/=x) xs)

Page 89. The type [Bool] should be [a] in the type for all and any.

Page 94. The phrase "covered in" should be "covered".

Page 97. The phrase "data structure" should be "data structures".

Page 130. The phrase "give an new" should be "give a new".

Page 140. The phrase "that the each" should be "that each".

Page 142. The phrase "each of each" should be "end of each".

Page 158. The phrase "even they" should be "even though they".

Page 162. The phrase "desire the" should be "desire to".

Page 167. The phrase "instances declarations" should be "instance declarations".

Page 175. The phrase "An more in-depth" should be "A more in-depth".

Page 175. In exercise 4, <*> should be (<*>) and <$> should be <*>.

Page 179. The phrase "Parser of this" should be "A parser of this".

Page 180. The first <*> on this page should be (<*>).

Page 180. The phrase "style :" should be "style:".

Page 181. The phrase "the the" should be "the".

Page 192. The function display has type:

     display :: String -> IO ()

Page 207. The phrase "it easy" should be "it is easy".

Page 213. The word "quotations" should be "quotation".

Page 216. The phrase "bodies lambda" should be "bodies of lambda".

Page 233. The final two steps of the inductive case should be as follows:

     Succ (add (add x y) z)
   =   { unapplying the outer add }
     add (Succ (add x y)) z
   =   { unapplying the inner add }
     add (add (Succ x) y) z

Page 256. The word "combinations" should be "combinators".

Page 257. The phrase "the avoid" should be "to avoid".

Page 275. In the second part of exercise 1, 1+2 is both innermost and outermost.

Many thanks to Harald Bögeholz, Truman Collins, Philip Craig, Daniele Filaretti, Hideki Ikeda, Anatoly Kamchatnov, Kamil Kisiel, Kris Katterjohn, Guillaume Koenig, Vilem-Benjamin Liepelt, Jeremy Moore, Carlos Suberviola Oroz, Ivan Perez, Peter Summerland, Yoshihiro Tanaka, Adrian Wong, and Christina Zeller for pointing out errors.

Please contact the author if you spot any further issues.