We try to keep our books accurate, but sometimes mistakes creep in. This page lists the errors submitted by our astute readers. If you've found a new error, please submit it.

The latest version of the book is P5.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.

Key: Typo Tech. Error Suggestion Not a problem Next edition

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

(To find out what version you have, look at the copyright page, a few pages in from the front of the book. If it says (say) 'Second Printing', then here it'll be P2.0. If there are interim PDF releases in that printing, they'll be 2.1, 2.2, and so on.)

PDF Paper Description Found in Fixed in
sadek sadek

#49408: this makes me sad--SPGqMjBvQqqAEzhB

P5.0
05-Jun-12
leswx leswx

#48904: im subscribing to this rss totally--CUSEBXJwJigcmRvS

P5.0
06-Mar-12
ufwao ufwao

#49420: nice suggestion--tWLDgSkmdnzh

P5.0
09-Jun-12
mkkyx mkkyx

#49421: my crew loves that --WUwVnmZrdqETYAKIp

P5.0
09-Jun-12
ucmyo ucmyo

#48655: JG5rZI thanx women--jbUQJXAYFLkV

P5.0
04-Feb-12
tiwya tiwya

#49425: sweet not sure tho--vUznlSpjbs

P5.0
10-Jun-12
irpgg irpgg

#48916: i had to write here--aZMugTiyMsruupPsEi

P5.0
09-Mar-12
ybmjb ybmjb

#48667: Comments do help--cJEnWHhhAt

P5.0
05-Feb-12
honam honam

#48668: i do not agree--XAzqJPQhlWILmnafbKK

P5.0
06-Feb-12
honam honam

#48669: i do not agree--XAzqJPQhlWILmnafbKK

P5.0
06-Feb-12
fdzqg fdzqg

#48670: Looking forward to--OannmwdICcGblNflNMY

P5.0
06-Feb-12
hwtoi hwtoi

#49440: mmmm sandwitch--gQswKfkOOEt

P5.0
15-Jun-12
roshm roshm

#49185: sweet template--PHdTzpBllaCYGwHxOkV

P5.0
24-Apr-12
glnsj glnsj

#49697: kl8oQd omg loved this stuff--wxpSuzevgE

P5.0
15-Aug-12
zyqgb zyqgb

#49698: 9zpO2F good blog as usual--gkxVHGbfWXxFKR

P5.0
16-Aug-12
sontx sontx

#49704: tQwPuJ including specific questions in posts--MEqudmTCvLy

P5.0
16-Aug-12
sontx sontx

#49705: tQwPuJ including specific questions in posts--MEqudmTCvLy

P5.0
16-Aug-12
sontx sontx

#49706: tQwPuJ including specific questions in posts--MEqudmTCvLy

P5.0
16-Aug-12
mfihr mfihr

#49709: TX69oF this helped me as much as it coulkd--cMBNPaunHFduWgnCH

P5.0
17-Aug-12
regua regua

#48944: so what do we do now?--FHXCgEZlMNte

P5.0
15-Mar-12
vyfwp vyfwp

#49461: thanx karen--CObXpYwtAziszTufOBB

P5.0
25-Jun-12
index

#47933: the index entry for "|| (double
vertical bar)" should include page 198 (the section on List Comprehensions).

P5.0
10-Nov-11
fyyjp fyyjp

#49726: g00d info as usual here--TMzERPHgOSGUlqvzjS

P5.0
23-Aug-12
rGUYV SGHKj

#47681: I told my grandmother how you heepld. She said, “bake them a cake!”--13

P5.0
02-Oct-11
euoto euoto

#48973: im a serial reader--yYulEpkSUvJL

P5.0
22-Mar-12
zohtp zohtp

#48466: L1i18q I notice that when I specifically invite comments that people leave them in higher numbers than when I don�t.--iJChmoiecmtuayoxfxp

P5.0
06-Jan-12
iirru iirru

#49234: wat is at about hmmm--FeZzvqJZhveoAtzeSMY

P5.0
01-May-12
iirru iirru

#49235: wat is at about hmmm--FeZzvqJZhveoAtzeSMY

P5.0
01-May-12
decdt decdt

#48733: i dont know if that is really true.....--xZIdXGNVLASWxpgh

P5.0
16-Feb-12
decdt decdt

#48734: i dont know if that is really true.....--xZIdXGNVLASWxpgh

P5.0
16-Feb-12
szgmy szgmy

#48735: thissi sad.. maybe not..--zkagSJJmseYCsLOtUoI

P5.0
16-Feb-12
aftnm aftnm

#49761: thanx women--WuiEpXKfYdRq

P5.0
29-Aug-12
fnqbw fnqbw

#49784: i have to say this --pqRjUJeGHCOLGFIGtcE

P5.0
06-Sep-12
rjymp rjymp

#49786: thinkingof what?--GsDMEirltHB

P5.0
07-Sep-12
tmdpe tmdpe

#49787: i had to write here--RVmmDmZVMafdRYJLrK

P5.0
07-Sep-12
ooloh ooloh

#49276: i agree woman--MDgWVcLrkBDKgM

P5.0
04-May-12
ldvda ldvda

#49789: bring that times back!--pViZqedmsELC

P5.0
07-Sep-12
tnbex tnbex

#49790: i agree man--dCBGFgufkRWaakbgPXW

P5.0
08-Sep-12
ffoaz ffoaz

#49793: thanx big man--XacxBsONeptqyh

P5.0
10-Sep-12
rulcu rulcu

#49538: thinkingof what?--fUwPmhvVcEkW

P5.0
18-Jul-12
xjhst xjhst

#49796: Nigeria --nBPllQSpDudheUOWzH

P5.0
12-Sep-12
mjtvq mjtvq

#49546: this helped me as hell--pTdPCLRHYQbXZ

P5.0
20-Jul-12
sdjri sdjri

#49295: thanx for a great post mate--WerudMKjUoryQK

P5.0
09-May-12
czmyb czmyb

#49810: Luxembourg --IzfdhseVGzodKBxuQ

P5.0
16-Sep-12
bkgpj bkgpj

#49814: good one i luv it--ZFHWOWCwIcx

P5.0
16-Sep-12
ckpjy ckpjy

#48791: hmm what them is that? custom?--ODJqqYLdBjOHotPhnB

P5.0
21-Feb-12
vljld vljld

#49559: good infos as always maine--WNitEnYEIyhNpX

P5.0
25-Jul-12
mjsya mjsya

#49816: Ireland --UgFMrfMkkhzBlj

P5.0
17-Sep-12
lxlct lxlct

#49050: good blog as usual--flgUyuzqsSnBONQFpWE

P5.0
03-Apr-12
chxsm chxsm

#48822: thanx karen--rnzZmpaNZk

P5.0
28-Feb-12
xazrm xazrm

#48836: love to read--bUXmKIAuptYBRFCU

P5.0
29-Feb-12
swtov swtov

#48862: can i comment here--JjXBgGcseQvTfoFNF

P5.0
02-Mar-12
tmkni tmkni

#48607: w0w this is good--xOUshaXQdgii

P5.0
28-Jan-12
icotc icotc

#49123: lool cool--guvxstMiWDvduTUaWTP

P5.0
17-Apr-12
flnoe flnoe

#48613: Great tips!!! --hzmOiyQNICuR

P5.0
30-Jan-12
lgszx lgszx

#48624: thanx women--rBgoCUisXCWgyehn

P5.0
31-Jan-12
hkrtt hkrtt

#48627: this is what i needed man--WEfHVWfFAJEE

P5.0
01-Feb-12
qatbs qatbs

#48633: ok love that stuff--XfPVYIwbOMUoe

P5.0
01-Feb-12
zshcr zshcr

#48634: shoudlnt i try it?--hJMQMXDfQJOsFth

P5.0
01-Feb-12
oghac oghac

#48635: WPKLKR hmm what them is that? selfmade?--qSdVdQujSmcsPLF

P5.0
01-Feb-12
psnhi psnhi

#48892: my crew loves that --wjfljhfOlkEUctfT

P5.0
05-Mar-12
nprif nprif

#49404: mumbo jumbo--NbxOzBCNhHgqbNNXET

P5.0
04-Jun-12
22
#46210: The instructions for installing on Debian need to include the package "erlang-dev" as well: erlang-dev provides kernel/include/file.hrl, witho...more...
P4.0
09-Jan-11
42

#46539: The last paragraph would read better like this "Now we're comfortable....." (take out "that") or leave "that" and take out "so" after the ",".

P5.0
08-Mar-11
47
#48788: Please note, this report looks similiar but actually differs in important detail to a previously reported Erratum. (The correction reported in...more...
P5.0
21-Feb-12
47
#53221: In the section of "where has my code gone?" the instruction is to create the file "C:/Program Files/erl5.4.12/.erlang" but for erlang 5.10.3, ...more...
P1.1
26-Nov-13
53
#48414: 3> Double = Z. should return #Fun<erl_eval.6.56006484> since 1> Z = fun(X) -> 2*X end. returned it. Checked with R11B-5, R15B (Windows) and R1...more...
P1.1
29-Dec-11
57

#48417: In the box function partition is mentioned, but has not been introduced yet. Perhaps a reference could be useful?

P1.1
29-Dec-11
81
#46530: In the output of try_test:demo2(), the fifth tuple output should begin with the number 5 as the first term. The example should read: 2> tr...more...
P5.0
07-Mar-11
86

#47848: On 3rd paragraph of section 5.2, the construct <<'cat'>> is invalid, the correct form is <<"cat">>.--Raúl Pedroche

P5.0
29-Oct-11
88
#48440: 4> list_to_binary([Bin1,1,[2,3,Bin2],4|Bin3]). The list [Bin1,1,[2,3,Bin2],4|Bin3] is improper. Furthermore, a binary is allowed in the tai...more...
P1.1
01-Jan-12
100
#47259: User-Defined Attributes (...) In the attrs.erl example code, the following function is defined. fac(1) -> 1; fac(N) -> N * fac(N-1)...more...
P5.0
13-Jul-11
102
#46531: In the second paragraph of the section titled "Block Expressions", you are missing the word "a" between "have" and "sequence". It should read...more...
P5.0
07-Mar-11
115

#48448: Section Term Comparisons, seventh paragraph: "a integer" should be "an integer".

P1.1
02-Jan-12
115
#46533: In the last paragraph of the page, the one with the curve sign next to it, last sentence, you talk about multiple occurrences of _Int in a com...more...
P5.0
07-Mar-11
124

#48459: The difference between "~n" and "\n" in the format string of io:format is not clear. Probably, some explanation could be useful.

P1.1
04-Jan-12
125
#48457: The escript could be run on Windows by the following script: foo.bat @setlocal enableextensions & "C:\Program Files\erl5.9\bin\escript.exe...more...
P1.1
04-Jan-12
129
#47309: Chapter 7 is titled "Concurrency" and presents several of examples in the course of describing Erlang's model of concurrent programming. Ho...more...
P5.0
24-Jul-11
143

#48433: Hah, Italy protesters rally against Berlusconi--Sterling CampbellAV

P5.0
30-Dec-11
162
#48247: Under the heading 'System processes', in the first sentence of the first paragraph, it reads: "..., it too will die unless it is special kind ...more...
P5.0
10-Dec-11
168
#47327: First line of the page reads: 7> edemo1:start(true, normal). It should be: 7> edemo1:start(true, {divide, 0}). Other it would not ...more...
P5.0
31-Jul-11
189
#47203: {ok, Pid} = lib_chan:connect("localhost", 1234, nameServer, "ABXy45", ""). ** exception error: undefined function lib_md5:string/1 in...more...
P5.0
19-Jun-11
201
#47800: There is no mention of the requirement of Tcl/Tk for gs to work properly, in fact how the code in io_widget is written if you don't have Tcl/T...more...
P5.0
22-Oct-11
203
#47801: The loop(W) on page 203 has an incorrect receive pattern. It is listed as {W, {str, Str}} -> but I believe it should be {W, _State, {...more...
P5.0
22-Oct-11
244
#48704: Hi Joe, I refer to your errata above on the updated lib_find.erl using re module. The following section in the above codes are in correct: ...more...
P5.0
11-Feb-12
277
#46696: In the box at the top of the page, second sentence, you have used the word "an" instead of "a". It should read, "You can think of a protected...more...
P5.0
28-Mar-11
305

#47315: "...State is the current state of the client. ..."
should read :
"State is the current state of the server."--Wiesław Poszewiecki

P5.0
26-Jul-11
306

#46614: Under "Spontaneous Messages to the Server" section:

change

might suddenly receive a unexpected

to

might suddenly receive an unexpected--Wes James

P5.0
18-Mar-11
307
#48602: In the Code Change section, there is an annotation with an incorrect link. The line is "This topic is described in detail in the section on re...more...
P5.0
27-Jan-12
309
#47106: Current text: "(The entire listing for mnesia_test appears at the end of this chapter.)" The module included at the end of the chapter is "...more...
P5.0
24-May-11
314
#46695: In the paragraph after the source code for the demo(select_shop) function, the last sentence, the one in parenthesis, you refer to the name of...more...
P5.0
28-Mar-11
344
#37325: the deliberate error seems to be that compute_area is only define for square and rectangle. the erroneous call in #3 on on the bottom of pa...more...
P3.0
28-Jan-09
357
#46283: The PDF files on erlang.org has been arranged making the links on for instance page 357 broken. Look at erlang.org/doc for current locations. ...more...
P4.0
20-Jan-11
385
#46701: In the last paragraph, second sentence, there is an extra word "a" between "is" and "achieved". It should read, "This is achieved with indexe...more...
P5.0
29-Mar-11
474

#46625: "Generic event handling behavior.g" The ".g" is a typo, I think.--Dave Roberts

P5.0
21-Mar-11

Stuff To Be Considered in the Next Edition

PDF Paper Description Found in Fixed in
0
#29186: This is not specific to any page, but I feel that more attention needs to be paid to Erlang's string handling performance and techniques. The ...more...
P1.0rc3
03-Jun-07
23
#29127: Because erlang is mainly for embedded developer interesting, mabe you could note some common size/memory footprints and in this context point ...more...
P1.0rc2
24-May-07
39
#29170: I'm new to this, but I note in the transition between the section on tuples and lists, no real explanation is given as to the difference betwe...more...
P1.0rc3
30-May-07
65
#29215: As someone with a Haskell background, I found the section about 'list comprehension' quite understandable. However I noted that my fellow coll...more...
P1.0rc3
12-Jun-07
73

#29717: Last paragraph: "and computing some value" should be "and computes some value"--Richard Carlsson

P2.0
30-Sep-07
74
#29718: Paragraph 5 ("If you ever see code like this...") doesn't really explain the problem, and makes it look like "++" is inherently bad somehow. ...more...
P2.0
30-Sep-07
74
#30327: I think there should be a statement to clarify that the function odds_and_evens() use 'commas' in the body as it is made up of 'sequence of e...more...
P2.0
05-Jan-08
77
#28933: I'd like to see a list of short exercises for the reader to do at the end of each chapter or throughout the chapter (with possible solutions) ...more...
B1.15
07-May-07
77

#29631: The explanation of BIF is not until page 86, but is used on page 77 in the explanation of exceptions.--Matt Young

P2.0
07-Sep-07
85
#29255: 4.7 -> Catching Every Possible Exception: you mention there 'tags', but from reading the book so far, I have no clue of what tags are... ( _:...more...
P1.0rc3
22-Jun-07
88

#38380: It would be nice to mention bit strings and the /bits TypeSpecifier--James Morris

P3.0
17-Mar-09
93
#29723: Paragraphs 4 and 5 both start with the same sentence: "To find the sync point..." (only the last word differs). In any case, those two paragra...more...
P2.0
30-Sep-07
101
#29724: The attributes "-compile(...)" and "-vsn(...)" are described as "predefined module attributes" along with "-module(...)" etc., but in fact, th...more...
P2.0
30-Sep-07
103
#29725: The subsection on Boolean Expressions should have a reference to the subsection on Short-Circuit Boolean Expressions on page 115, and vice ver...more...
P2.0
30-Sep-07
109
#29727: Subsection "Control Flow in Macros": This talks consistently about control flow "within a macro", "inside a macro definition", etc. But in fac...more...
P2.0
30-Sep-07
114
#29358: "References are globally unique" As far as i remember that means more than inside of one erlang machine. Would be nice to give more details,...more...
P1.0
25-Jul-07
124

#29199: Maybe you like to link the pages 124 and 47. Both care about the .erlang file.

Kind regards,
Nils--Nils Muellner

P1.0rc3
07-Jun-07
124
#31251: not equivalent example "C:\Program Files\erl5.5.3\bin\erl.exe" -noshell -s hello start -s init stop #!/bin/sh erl -noshell -pa /hom...more...
P2.0
16-Mar-08
143
#31565: The concept of a mailbox is referred to and relied upon halfway down the page, but it is not introduced and described until p145, which is als...more...
P2.0
03-Apr-08
152

#29644: The notion of mailboxes is not introduced until section 8.6, but are referred to in 8.5 (receive with a timeout of 0)--Matt Young

P2.0
10-Sep-07
154
#29002: I thought the section on Selective Recieve went a little fast. Since message passing/recieving is such a large portion of the language per...more...
B1.15
11-May-07
157
#29803: Section 8.10, "Spawning with MFAs": It is a misconception that spawns using funs would somehow cause problem with dynamic code loading. It is ...more...
P2.0
30-Oct-07
182
#29638: Couple of things about section 10.5: $HOME/.erlang/lib_chan.conf as stated on p179 is $HOME/.erlang_config/lib_chan.conf on my system - thi...more...
P2.0
08-Sep-07
193
#29243: Ok, I found the lib_chan code. The way it was presented to the reader did not make it clear that lib_chan was code that came with the book and...more...
P1.0rc3
18-Jun-07
222
#29238: The sample Makefile does not work as is on Mac OS X. Here is my version for Mac OS X: .SUFFIXES: .erl .beam .yrl .erl.beam: erlc -W $< ...more...
P1.0rc3
18-Jun-07
223
#30751: The shared library must be called example1_drv.dll on Windows systems in order for erl_ddll:load_driver to find it. Otherwise you get ** exc...more...
P2.0
14-Feb-08
226
#29239: In ports/example1_lid.c, you include erl_driver.h that comes with the sample code package. But it may fail under some reader's configuration,...more...
P1.0rc3
18-Jun-07
235
#31745: I spoke too soon (#31742): there is no platform-dependent conversion happening at all. Opening a file with file:open() uses binary mode for re...more...
P2.0
26-Apr-08
235
#31742: Last paragraph: the ~n formatting command: the explanation that "~n is smart" is wrong! (Try it on Windows, or just look in the code for io_li...more...
P2.0
26-Apr-08
242
#29973: There's suggestion to use certain kinds of accumulation techniques for tcp fragments. Now the R12B-0 have brought efficient binary accumulatio...more...
P1.1
10-Dec-07
243

#29218: The file_info record shown here is missing the minor_device, inode, uid, and gid fields.--Steve Vinoski

P1.0rc3
13-Jun-07
261
#31749: In the UDP client/server example code, the server is parameterized with respect to 'Port', but the client code (both on p. 261 and p. 262) is ...more...
P2.0
26-Apr-08
261 255
#29591: In the udp_test.erl server source: loop(Socket) -> receive {udp, Socket, Host, Port, Bin} = Msg -> The only explanation of ...more...
P2.0
28-Aug-07
295
#29181: In the code for server2.erl, the catch clause uses "_:Why". I didn't understand what that meant at first. The concept of tags is introduced ve...more...
P1.0rc3
01-Jun-07
316
#31777: You note that qlc:q(LC) only works if LC is a literal list comprehension, and not if LC is a variable, but you do not mention that it is neces...more...
P2.0
27-Apr-08
317
#31781: Section 17.2 "Adding and removing data...": It is frustrating to read about operations like mnesia:write(Row) when there has been no explanat...more...
P2.0
27-Apr-08
337
#31987: SInce it's explaining error logger config file it's abit confusing to have "false" to represent something that is "turned on". First I thought...more...
P1.0
13-May-08
338
#29021: Could you please mention OTP behaviors not covered by the "OTP Introduction" and "Making a System With OTP" chapters, and where to go for furt...more...
B1.15
14-May-07
343
#31066: When sasl_error_logger is configured to write to a file, on Windows at least, the directory must exist before sasl is started. Sasl will not c...more...
P2.0
29-Feb-08
346
#29919: Compiling my_error_handler (with erlc) produced the following warning: ./my_alarm_handler.erl:9: Warning: undefined callback function code_ch...more...
P2.0
25-Nov-07
358
#31192: The is_prime function uses the Rabin-Miller primality test, but doesn't properly cite it and doesn't note that it is a probablistic test rathe...more...
P2.0
10-Mar-08
363
#31992: Due to this line in make_prime/1: N = make_random_int(K), 2 * N - 3 may have more than K digits, which causes this kind of behaviour: ---...more...
P1.1
13-May-08
393
#31794: 2nd bullet point: "TypeVar::Type: A type variable followed by a type. This means that TypeVar has type Type." This is a misunderstanding. The ...more...
P2.0
28-Apr-08
435
#29802: Chapter E.4: it is reloading, not recompilation in itself, which causes processes to call new code. Instead of saying "recompile", say "reload...more...
P2.0
30-Oct-07
438
#29416: Dynamic code loading. a:loop() not mentioned. The possibility to load a new version for module a from inside module a by using the full qua...more...
P1.0
16-Aug-07
440
#29971: It would be nice if the book included the proplists module among the modules it covers in Appendix F. That module is especially useful for han...more...
P2.0
10-Dec-07