jbcrail

jbcrail

Effective Haskell: typos, grammar, and punctuation (Chapter 2 - pdf B1.0)

To be more concise and minimize the number of threads, I grouped the suggested corrections into one post.

A few notes on how I structured this post:

  • Corrections are ordered by page number.
  • All page references are for the PDF edition.
  • Modified words or sentences are highlighted in bold when appropriate.

On page 25,

…how to work with lists using high order functions…

should be

…how to work with lists using higher order functions…

On page 26,

…prepending an element to a list is much more efficent than…

should be

…prepending an element to a list is much more efficient than…

On page 26,

Later on on page 53 you’ll learn…

should be

Later on page 53 you’ll learn…

On page 28,

When you’re creating a list recusively in this way…

should be

When you’re creating a list recursively in this way…

On page 28,

…countdown from a starting number using this techinque.

should be

…countdown from a starting number using this technique.

On page 29,

To make our code more ergonimic to use…

should be

To make our code more ergonomic to use…

On page 29,

In the case offactors we’re calculating…

should be

In the case of factors we’re calculating…

On page 29,

The recursive part of our function handled…

should be

The recursive part of our function is handled…

On page 30,

If the modulous is 0 then we’ve found a factor.

should be

If the modulus is 0, then we’ve found a factor.

(note: I’ve also added a comma between “0” and “then”)

On page 32,

Later on in on page 107 you’ll learn…

should be

Later on page 107 you’ll learn…

On page 33,

They both return accumulator on an empty list…

should be

They both return an accumulator on an empty list…

On page 33,

…let’s pretend to be the compiler and use some pseduo-Haskell…

should be

…let’s pretend to be the compiler and use some pseudo-Haskell…

On page 35,

Like folding, appliying a function to ever element in a list…

should be

Like folding, applying a function to every element in a list…

On page 39,

…where a is an element of bs, and b is odd".

should be

…where a is an element of bs, and b is odd."

(note: I’ve moved the quote after the period.)

On page 44,

…replace the first or second elements if the match some special case…

should be

…replace the first or second elements if they match some special case…

On page 46,

More specifically, Haskell uses is a form of laziness…

should be

More specifically, Haskell uses a form of laziness…

(note: I’ve removed “is” from the original sentence.)

On page 49,

In fact, we while our first attempt to calculate…

should be

In fact, while our first attempt to calculate…

(note: I’ve removed “we” from the original sentence.)

Most Liked

RebeccaSkinner

RebeccaSkinner

Author of Effective Haskell

Thanks for this! I’m actively working on the first batch of revisions and I’ll make sure to address these.

Where Next?

Popular Pragmatic Bookshelf topics Top

brianokken
Many tasks_proj/tests directories exist in chapters 2, 3, 5 that have tests that use the custom markers smoke and get, which are not decl...
New
simonpeter
When I try the command to create a pair of migration files I get an error. user=> (create-migration "guestbook") Execution error (Ill...
New
swlaschin
The book has the same “Problem space/Solution space” diagram on page 18 as is on page 17. The correct Problem/Solution space diagrams ar...
New
brian-m-ops
#book-python-testing-with-pytest-second-edition Hi. Thanks for writing the book. I am just learning so this might just of been an issue ...
New
AndyDavis3416
@noelrappin Running the webpack dev server, I receive the following warning: ERROR in tsconfig.json TS18003: No inputs were found in c...
New
fynn
This is as much a suggestion as a question, as a note for others. Locally the SGP30 wasn’t available, so I ordered a SGP40. On page 53, ...
New
jskubick
I found an issue in Chapter 7 regarding android:backgroundTint vs app:backgroundTint. How to replicate: load chapter-7 from zipfile i...
New
s2k
Hi all, currently I wonder how the Tailwind colours work (or don’t work). For example, in app/views/layouts/application.html.erb I have...
New
davetron5000
Hello faithful readers! If you have tried to follow along in the book, you are asked to start up the dev environment via dx/build and ar...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

AstonJ
If it’s a mechanical keyboard, which switches do you have? Would you recommend it? Why? What will your next keyboard be? Pics always w...
New
New
PragmaticBookshelf
Andy and Dave wrote this influential, classic book to help their clients create better software and rediscover the joy of coding. Almost ...
New
PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
PragmaticBookshelf
Explore the power of Ash Framework by modeling and building the domain for a real-world web application. Rebecca Le @sevenseacat and ...
New
AstonJ
This is a very quick guide, you just need to: Download LM Studio: https://lmstudio.ai/ Click on search Type DeepSeek, then select the o...
New

Sub Categories: