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

johnp
Hi Brian, Looks like the api for tinydb has changed a little. Noticed while working on chapter 7 that the .purge() call to the db throws...
New
herminiotorres
Hi @Margaret , On page VII the book tells us the example and snippets will be all using Elixir version 1.11 But on page 3 almost the en...
New
conradwt
First, the code resources: Page 237: rumbl_umbrella/apps/rumbl/mix.exs Note: That this file is missing. Page 238: rumbl_umbrella/app...
New
AleksandrKudashkin
On the page xv there is an instruction to run bin/setup from the main folder. I downloaded the source code today (12/03/21) and can’t see...
New
Chrichton
Dear Sophie. I tried to do the “Authorization” exercise and have two questions: When trying to plug in an email-service, I found the ...
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
jgchristopher
“The ProductLive.Index template calls a helper function, live_component/3, that in turn calls on the modal component. ” Excerpt From: Br...
New
adamwoolhether
Is there any place where we can discuss the solutions to some of the exercises? I can figure most of them out, but am having trouble with...
New
AufHe
I’m a newbie to Rails 7 and have hit an issue with the bin/Dev script mentioned on pages 112-113. Iteration A1 - Seeing the list of prod...
New
EdBorn
Title: Agile Web Development with Rails 7: (page 70) I am running windows 11 pro with rails 7.0.3 and ruby 3.1.2p20 (2022-04-12 revision...
New

Other popular topics Top

brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
Exadra37
Oh just spent so much time on this to discover now that RancherOS is in end of life but Rancher is refusing to mark the Github repo as su...
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
PragmaticBookshelf
Create efficient, elegant software tests in pytest, Python's most powerful testing framework. Brian Okken @brianokken Edited by Kat...
New
PragmaticBookshelf
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
AstonJ
Was just curious to see if any were around, found this one: I got 51/100: Not sure if it was meant to buy I am sure at times the b...
New
New
AstonJ
This is cool! DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON We just witnessed something incredible: the largest open-s...
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New

Sub Categories: