Manning (164) [Avatar] Offline
#1
Thanks for reading Learn Haskell and taking the time to post in the forum!

At this stage we're mostly focusing on content and presentation, because the book will be copyedited later in the process. However, if you do notice typos or other editing errors, please post them in this thread, and we'll try to correct them as we go.

Thanks again for participating in the forum!
sorbus (8) [Avatar] Offline
#2
So this is what I have found up to the end of Unit 1, Lesson 1

Page 4, first sentence appears to be something missing:
"It might come as a surprise but to really understand Haskell's "hello world" requires."

Page 6, first line, 'interrupted' should be 'interpreted'

Section 0.4, first sentence, 'new comers' should be 'newcomers'

Section 0.4 (before 0.4.1), last sentence should "is that programs that come will work" be "is that programs that compile will work"?

Unit 1 (beginning), 2nd para, "However a computer built with Von Neumann Architecture not the only way" should be "However a computer built with Von Neumann Architecture is not the only way" (added 'is')

Page 11, last para, 2nd sentence, not sure what this means: "As a language Haskell commits fully to Backus's dream and does not allow you to start." Start what?

Page 12, at bottom in the side note about sqrt x, fourth sentence, not sure about the use of 'either' here. This and the following sentence may need re-wording. Also in the following sentence 'we' has been written with a capital W.

Figure 1.1, 'all function in Haskell' should be 'all functions in Haskell'.

Page 14, aside about Turing, 3rd sentence "This model also allows computer scientist to show" should either pluralise scientist or say 'a computer scientist'

Section 1.2, the link for the Church-Turing Thesis document is not well formed due to word wrap. It might be better to suggest how to find the document, e.g. 'go to www.alanturing.net or do an internet search for Church-Turing Thesis' rather than provide a direct link which may fail in the future as documents are moved around.

End of section 1.3, spot quiz. What is meant by '(function definition 1.1)'

End of Unit 1 Lesson 1 in the Answer to the Question, "This allows us wield..." should be "This allows us to wield..."

340732 (3) [Avatar] Offline
#3
page 7: "Everything works fine, but it would be much easier to worth with if this code was broken up a
bit." I think you want "work" not "worth"
405569 (1) [Avatar] Offline
#4
One more.
"Figure 1.1 Defining a simple functino"
it should be "function" instead of "functino"
177348 (1) [Avatar] Offline
#5
On page 6, "If you are coming from an interrupted language such as Python" should be "If you are coming from an interpreted language such as Python"
339327 (1) [Avatar] Offline
#6
• Page 4: It might come as a surprise but to really understand Haskell's "hello world" requires. -- Bad grammar, requires what?

• Page 5: Anytime you load a file you will overwrite existing definitions of functions are variables. -- should be "functions and variables"

• Page 6: The flipside of being obsessed with correctness during compilation is that programs that come will work and work as expected far more often than you are likely used to. -- should be "...language that compile will work..."

• Page 6: bad draft of thank you email first_prog.hs -- should have a colon at the end

• Page 7: Everything works fine, but it would be much easier to worth with if this code was broken up a bit -- "...easier to work with..."

• Page 10: However a computer built with Von Neumann Architecture not the only way to perform computation. -- should be "...Architecture is not the only..."

• Page 10: But focusing on computation not computers functional programming allows -- should be "...computation not computers, Functional Programming allows" (i.e. comma AND lower-casing the "functional programming", it's NOT capitalized in other places. Note: there are a LOT of discrepancies in the capitalization of "functional programming", should decide on one manner or the other then search-and-replace the whole text to match that style!)

• Page 11: Just as C is the near perfect embodiment of the Von Neumann Style of programming, -- should be "...Von Neuman style of..." (no reason to capitalize the word "style").

• Page 11: As a language Haskell commits fully to Backus's dream and does not allow you to start. -- bad grammar, doesn't allow you to start what?

• Page 15: When we change a value in our programming environment we are changing the program's State. -- should be "...the program's state." (no reason to capitalize the word "state").

• Page 16: If you were to try to compile the following bit of Haskell you would get an error -- should be "...get an error:"

• Page 20: But this makes it easy to accidentally have a typo cause your expression causing an error. -- should be "...a typo in your expression..."

• Page 26: Whenever we create a new function, named or not, we create what is called a new Scope, which is the context that a variable is defined in." -- in "...that a variable is..." there's a double-space between "a" and "variable".

• Page 28: The means that functions can be used both as arguments and well as returned as values from other functions. -- 1. “The means that...” should be “This means...”; 2. “...both as argument and well as returned...” should be “both as argument as well as returned...”
446815 (1) [Avatar] Offline
#7
In the Unit 1 Capstone, in the 2nd paragraph, the second sentence says "In this exercise we'll be looking at how we can use the tools of functional programming to replicate comment design features found in OOP languages."

I assume here "Comment" should be "common"

Note: I'm using the .mobi version in case that matters.
KOZAKI (3) [Avatar] Offline
#8
- version : MEAP v8
- page : p.63

wrong
myLength xs = 1 + length (tail xs)


correct
myLength xs = 1 + myLength (tail xs)

471977 (4) [Avatar] Offline
#9
Page 70


mul3ByAll [] = []
mul3ByAll (x:xs) = (3 + x):add3ToAll xs


looks like it should be

mul3ByAll [] = []
mul3ByAll (x:xs) = (3 * x):add3ToAll xs
471977 (4) [Avatar] Offline
#10
Page 77:

Your isPalindrome function from lesson 8 doesn’t handle sentences with spaces or...

should be

Your isPalindrome function from lesson 5 doesn’t handle sentences with spaces or...
31877 (1) [Avatar] Offline
#11
Loving this book and the examples! Looking forward to final version.

Some typos in section 14 of MEAP v08 that means Haskell does not compile

Listing 14.2, line 3 should be

where halfAlphabet = alphabetSize `div` 2


Listing 14.6 line 1 type definition does not match function name. Should be
fourLetterEncoder :: [FourLetterAlphabet] -> [FourLetterAlphabet]

114186 (1) [Avatar] Offline
#12
Page 102:
"Define Ttpe synonyms to clarify code" -> "Define Type synonyms to clarify code"
icogs (16) [Avatar] Offline
#13
Section 22.3.1 Searching Sanskrit

url for Sanskrit text has an extra 'm' after 'willkurt'.
icogs (16) [Avatar] Offline
#14
Section 24.2.1

you’ll take module 255 of the Int
should be
you’ll take modulus 255 of the Int