small medium large xlarge

The latest version of the book is P2.0, released about 3 years ago. If you've bought a PDF of the book and would like to upgrade it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: P2.0 (29-Jan-15)
#78119
PDF page: 184
Probably a mismatch: 3> Pid ! {square, 12}. Area of square is 144 {square, 144} The return value of Pid ! {square, 12} should be {square, 12} ...more...
  • Reported in: P2.0 (10-Dec-16)
#80965
PDF page: 11

The link in the third paragraph to install Erlang is broken. It returns a 404 error.--Robert Hencke

  • Reported in: P2.0 (10-Feb-17)
#81108
Paper page: 15
In Chapter 2, in the file server example, while careful reading does indicate the file:read_file() returns a tuple composed of the result and the byte...more...
  • Reported in: P2.0 (01-Jan-15)
#78002
PDF page: 38

Missing opening [ at the beginning of the response to 3>

  • Reported in: P2.0 (30-Jan-17)
#81095
Paper page: 58
At the bottom of p. 58, there is a code example with the heading shop2.erl. The example specifies the following import annotation: -import(lis...more...
  • Reported in: P2.0 (30-Jan-17)
#81096
Paper page: 58
At the bottom of p. 58, there is a code example with the heading shop2.erl. The example specifies the following import annotation: -import(lis...more...
  • Reported in: P2.0 (30-Jan-17)
#81097
Paper page: 58
Well, it looks like my previous errata #81096 is not validated by the text on p. 59, which doubles down and directs the reader to examine the import a...more...
  • Reported in: P2.0 (15-Jan-17)
#81064
PDF page: 80
In the section "The Semantics of Maps" on erl line 6, the example of using := on a nonexistent key is missing the dot whitespace at the end.--Kim Shri...more...
  • Reported in: P2.0 (07-Jun-15)
#78473
PDF page: 82
In the description of the maps:from_list function, the description of how duplicate keys in the list are handled is incorrect. "If the same key occurs...more...
  • Reported in: P2.0 (23-Aug-14)
#77244
PDF page: 82
The character count example not compile. -module(count). -export([count_characters/1]). count_characters(Str) -> count_characters(Str, #{}...more...
  • Reported in: P2.0 (26-Jul-16)
#80558
PDF page: 84
The whole section "The JSON Bridge" seems to have become irrelevant. According to the discussion on the mailing list, http:__erlang.org_pipermail_e...more...
  • Reported in: P2.0 (22-Aug-14)
#77238
PDF page: 84
The maps module does not contain any BIFs for converting to and from JSON.. and according to this thread from February on the erlang-questisons mailin...more...
  • Reported in: P2.0 (15-Feb-17)
#81116
PDF page: 94
Paper page: 81
2> #{ born => B } = Henry8. returns: "* 1: illegal pattern" It should be: 2> #{ born := B } = Henry8. returns: "#{born => 1491,class => king,die...more...
  • Reported in: P2.0 (26-Sep-14)
#77486
PDF page: 102
Paper page: 90

At the bottom of the page in the last paragraph we have FuncOrExpessionSeq instead of FuncOrExpressionSeq.--Geert Van Laethem

  • Reported in: P2.0 (10-Feb-17)
#81109
Paper page: 103
On the bottom of p. 103, the book says, --------- The value of Size specifies the size of the segment. The default value depends on the type........more...
  • Reported in: P2.0 (11-Feb-17)
#81110
Paper page: 103
On the bottom of p.103, I've come to the conclusion that the following statement is erroneous: "In pattern matching, this default value is valid on...more...
  • Reported in: P2.0 (21-Oct-15)
#79033
Paper page: 119

in example code shows version number to be 4.8 then describes the version number as 4.5.5

  • Reported in: P2.0 (21-Oct-15)
#79034
Paper page: 133

comma is missing between = and ! in table.
could lead to confusion of a possible operator of =! type

  • Reported in: P2.0 (18-Mar-16)
#80115
PDF page: 133

Calculation error:
- 36#wow is said to be equal to 42368.
- 36#wow is equal to 30363.--Eric Eikrem

  • Reported in: P2.0 (20-Oct-16)
#80819
Paper page: 137
In the section 8.25 Tuple Modules, the paragraph "..., in which case the function Mod1:f(Arg1, Arg2, ..., Arg3, M) is called." contains wrong argument...more...
  • Reported in: P2.0 (17-Jan-17)
#81066
PDF page: 153
The functions f1/1, f2/1 and f3/1 in dialyzer/types1.erl are using the wrong calculation if they are trying to compute the number of seconds. All thr...more...
  • Reported in: P2.0 (27-Aug-14)
#77255
PDF page: 160
The section that reads: "The two most common functions that we use to manipulate the load path are as follows: -spec code:add_patha(Dir) => true | {e...more...
  • Reported in: P2.0 (11-May-16)
#80309
PDF page: 168

bottom note 4 : the link
h t t p://www.erlang.org/contrib/parser_tutorial-1.0.tgz
is broken : error 404--Bernard Kaiflin

  • Reported in: P2.0 (01-Jun-17)
#81603
Paper page: 218
Thanks Scott Baron!! I got the same error: * 1: syntax error before: '.' If I atom quote the fully qualified node name in rpc:call(), then the...more...
  • Reported in: P2.0 (10-Jan-16)
#79600
PDF page: 218
The example code shows using rpc:call as such: 1> rpc:call(gandalf@doris.myerl.example.com, kvs,store,[weather,cold]). But this will give an err...more...
  • Reported in: P2.0 (01-Jun-17)
#81612
Paper page: 221
A little more than halfway down the page, the definition of: spawn(Node, Mod, Func, ArgList) -> Pid is discussed. The text says, --- No...more...
  • Reported in: P2.0 (05-Jun-17)
#81648
Paper page: 234
Section 15.1/First paragraph/last word: --- ...Erlang messages that come from the ports. --- I think "ports" should be changed to "port".--7st...more...
  • Reported in: P2.0 (12-May-16)
#80313
PDF page: 237
Bottom of the page : The C program has three files. But on page 241, ports/Makefile.mac has a rule example1_drv.so: example1_lid.c example1.c ...more...
  • Reported in: P2.0 (20-May-17)
#81562
Paper page: 266

In the code example (marked with a circled 5):

lists_to_binary(reverse(SoFar))

Change "reverse" to "lists:reverse".
--7stud

  • Reported in: P2.0 (21-Jan-17)
#81070
PDF page: 266
In the code for nano_get_url/1 in socket_examples.erl, many web servers are not dealing with HTTP 1.0 requests anymore. Several sites that I tried re...more...
  • Reported in: P2.0 (21-Jan-17)
#81071
PDF page: 270
in the loop/1 function called from start_nano_server/0 in socket_examples.erl, it calls lib_misc:string2value/1. It might be nice to explain the logi...more...
  • Reported in: P2.0 (15-May-17)
#81539
Paper page: 275
Paraphrasing: --- If the socket was opened in passive mode, then gen_tcp:recv(Socket, 0) will return "all available bytes". --- A book about ...more...
  • Reported in: P2.0 (22-May-17)
#81569
Paper page: 276
Request for clarification. The 4th paragraph says: ---- The client will block until the server has called recv. --- Wow! Important point! P...more...
  • Reported in: P2.0 (29-May-17)
#81584
Paper page: 287
Exercise 2 at the bottom of the page says: --- Enter the code for A Simple TCP Server, on page 269. -- The code is actually on p. 270, and it...more...
  • Reported in: P2.0 (26-Mar-15)
#78278
Paper page: 292
compile error for clock1.erl: $ erlc clock1.erl clock1.erl:18: illegal pattern clock1.erl:27: illegal pattern #18: {Browser, #{ clicked => <<"...more...
  • Reported in: P2.0 (16-Mar-16)
#80107
PDF page: 295

first line of receive block has too many } brackets--Brian St. Amand

  • Reported in: P2.0 (12-May-16)
#80314
PDF page: 315
The example failed in line 85 of lib_trigrams.erl : Bin = zlib:gunzip(Bin0), Maybe the zip utility used to compress 354984si.ngl.gz is not compa...more...
  • Reported in: P2.0 (22-Jan-17)
#81072
PDF page: 325
In the vicinity of the definition for do_this_once/0 in test_mnesia.erl, it would be helpful to know that the record definition for "design" is mentio...more...
  • Reported in: P2.0 (03-Jun-17)
#81633
Paper page: 325
I'll have to one up Kim Shrier. In the middle of the page, the definition of do_this_once() refers to a record named design, whose definition is nowh...more...
  • Reported in: P2.0 (22-Jan-17)
#81073
PDF page: 326
The code snippet from test_mnesia.erl repeats the definition for demo/1. I believe you wanted to have the code for start/0 and reset_tables/0 there.-...more...
  • Reported in: P2.0 (10-Feb-15)
#78175
Paper page: 378

The URL for the design_principles.pdf is invalid (in footnote)

  • Reported in: P2.0 (28-Jan-17)
#81082
PDF page: 392
In the printout of the rb:help() function, the documentation for rb:start() shows up as a line typed into the interpreter instead of a line output by ...more...
  • Reported in: P2.0 (26-Jan-16)
#79707
Paper page: 403

On sellaprime.app codewhere is sellaprime_super I think it should have sellaprime_supervisor.

  • Reported in: P2.0 (28-Jan-17)
#81083
PDF page: 407
In section 23.8 where you list the files in an app, you list elog4.config but in all your example erl sessions, you use elog3.config. I thought it wa...more...
  • Reported in: P2.0 (14-Aug-14)
#77213
PDF page: 408
In this page of the book there is an explanation about monitor application (appmon), I think it should be explained the change made in v17 about appmo...more...
  • Reported in: P1.0 (01-Aug-15)
#78710
Paper page: 467

In the second Paragraph of "Similarity Queries" is written:
"They we compute the cosine...", which should be "Then we compute the cosine...".--Kevin

  • Reported in: P2.0 (22-Jul-15)
#78658
Paper page: 468
Cross product is wrong. It should be called dot product. The code correctly calculates the dot product. See also HTTP://nlp.stanford.edu/IR-book/pdf/i...more...
  • Reported in: P2.0 (12-May-16)
#80311
PDF page: 515
I knew that erlc is used to compile from the command line, but was looking for parameters, and could not find erlc in the Index. ==> erlc should be...more...