Effective Haskell (Pragmatic Bookshelf)
Hot This:
Most Active This Week
Most Active This Month
Most Active This Year
Most Active Last Three Years

@RebeccaSkinner,
page 141. calculator.
I suggest you explain a little more about why you introduced the Left and Right types in the Cal...
New

Effective Haskell Chapter 8
getTerminalSize (Epub p 243) used pure in the case statement and return in the definition of tputScreenDime...
New

Defining Functor for Either Section (p. 270 ff ePub):
The discussion of the kind error seems as thought kinds have not been introduced ...
New

In the description of the algorithm for truncateStatus, the third bullet says “If the length of the status line is longer than the displa...
New

@RebeccaSkinner
In the “Creating New Variables” section of Chapter 1, it says that you can’t reassign variables once defined. But new Ha...
New

This is just a general note on UI and helping with the book.
pragprog should make it easier for me as user to edit my erratas/suggestion...
New

@RebeccaSkinner
In the section “Wrapping Basic Data Types”, there is the velocity function and gravity (i.e. on earth at sea level) is b...
New

Hi Rebecca,
On page 321 you use Left and Right in the function showLeftRight and I think that you should explain explicitly what Left an...
New

@rebeccaskinner
On p.386, we have the final version of directorySummaryWithMetrics.
When running the code, we see the histogram results...
New

Hi,
This is the first book that has truly helped to learn Haskell and to develop confidence to write programs in this language. Thanks s...
New

Hi! It’s me again with another bit of feedback :smile: .
The following diagram helps visualize how Haskell evaluates the chain of thunks...
New

Please make a pass through the book,
getting all the code on 1 side, or the other, of page-breaks,
for e-reader people.
I can’t get ki...
New

Hi, I got a bit sidetracked, but I now have time to continue with your book, which I am enjoying a lot. You explain the co-recursion in c...
New
Most Active Over Three Years

At the end of “Depending on Other Files” (ePub p 153), it says “In the next section you’ll learn the basics of Haskell’s syntax and gramm...
New

In Chapter 8, (Viewing Text One Page at a Time), when defining groupsOf, it says we should use a polymorphic type in the type signature, ...
New

In the “Functions as Data Types” section of Chapter 4 (ePub p 113), the takeDigits parser is introduced as “we could take some digits fro...
New

The discussion of why 1 'div' 0 isn’t evaluated in lazyIODemo (ePub p 214) could be expanded. The rationale (don’t want to read an entire...
New

In the first complete version of runHCat (ePub p. 201), that reads a file and prints it to the screen, LambdaCase is used. First, the pro...
New

It may be too much nitpicking, but you could consider describing the context in which the two language extensions (OverloadedStrings and ...
New

The definition of BinaryTree doesn’t allow for an empty tree (the minimum definition is a Leaf with one element) or two elements (next up...
New

At the end of the subsection on records, it might be nice to mention the practice of defining a default value for a complex record (e.g.,...
New

In the example:
return "4" >>= ioRead
You could consider adding an explanation, like “Remember that return "4" returns an IO Stri...
New
Book Info
Publisher:
Pragmatic Bookshelf
Get money off!

The Pragmatic Bookshelf
35% off any eBook
Simply use coupon code "devtalk.com" at checkout. See full details here.