Mastering Dyalog APL – Errata

No book is entirely free of errors; the ones that we know about are listed below. If you find a new item of interest and would like to report it, then e-mail us.

Intro3typoUtilities and Data
"WorkSpace" should be "workspace"
Intro3suggestionUtilities and Data
DyalogTutor_EN should be in the index.
Intro4typoPenultimate paragraph
"justifyable" should be "justifiable".
Intro10suggestion2nd paragraph
Alter to read "..the other symbols (...) we have discussed so far are called.."
Intro16typoFirst line
Remove extraneous "that" in first line.
Intro29typo2nd bullet point, last line
Add "is" in "there __ no need .."
A36typo1.3.1 end of 1st paragraph
Add "," in "in the same way as__ for .."
A36contentThe workspace DyalogTutor_EN.dws can no longer be reached by following the link to Instead,go to – there's a link to "companion files" in the second paragraph that allows you to download a zip file containing the DyalogTutor_EN.dws and other files.
A46suggestionEnd of 1.3 :
Clarity in the last paragraph:
It should be pointed out that clarity is an issue as well: with

a b←1 2

one cannot say what is going to happen. a and b may be variables holding a 1 and a 2, but the expression might also create a variable b which holds 1 and 2 because a is a monadic function that does not return an argument.

a b←1 2
1 2

For that reason the () in the assignment statement are strongly recommended.
"A single number has no dimensions" .. what about ⍴,1 ?
B56typoDisplay of MonVec
There should be two spaces between "March" and "April", as between the other months.
Quicker than Text[;1]←0 would be Text←(⍴Text)⍴0 and similarly for Vector.
4 2 ⌷ Tests returns 40, not 78.
B65suggestionpenultimate paragraph
Suggest "but it will not be long before you understand immediately what it means."
Consider adding a reference to G-1.1.5 or I.7 which explain the difference between empty numeric and character vectors.
B71typoPenultimate bullet point
"which is equivalent to ""Save As""".
B71typolast bullet point
remove "," after "APL".
B75typo8.4 First sentence
dws, which stands for Dyalog WorkSpace.
Explain further the uses of Monadic Index.
B87typoPenultimate paragraph
Extra "a" in the sentence "Applied to a an Enumerable .."
C96typoLast paragraph of Warning!
Should read "why we recommend that you do all .." (remove "to").
C110typoRow-wise multiplication
Second example should read "Tam×[1]5 2 7" - not 5 2 10
C121typo12.1 Example
Font wrong in comment "We ask for the positions of 5"; "ask" and "the positions of" too big.
D152contentSesction 2.1
The statement "The arguments ⍵ and ⍺ are read-only" is not precise. Assignment to ⍺ occurs if the dfn which contains the assignment is called monadically; it is the syntax used to define an ambivalent dfn.
D156contentSection 3.2
This section is written with the assumption that the variable res, which was created when you ran Meanval before adding res← to the function header, has been deleted. When you first ran the function, since res did not appear in the header, it was created as a global variable. You haven't been asked to delete it so far, so it still exists. To make this section more understandable, type
)erase res
before trying the code !
D166typo1/2 way down page
"all we need do is replace..". Add "to".
D171contentIf condition 1
The comment to the right of "Block 1" should read: "Executed if Condition 1 is satisfied"
D181typoFirst line of 4.6.1 and 4.6.2
"In any kind of loop" is in too-small a font.
D190contentJump if true..
The expression
works only if ⎕io is 1.
D203suggestion1/2 way down page
Should Prompt1[1] be ⎕←'What are the limits' ?
Another alternative is to type →
D216contentAt end of section
Note that with a dfn the assignment does not create a synonym, but rather creates a new independent dfn which can be edited using the function editor.
D222suggestionThroughout page
Rather than Activating a menu option, it should be selected. This may occur elsewhere in the book.
D236typoFirst paragraph or Spe-7
Remove "," immediately before last ;InEach.
E239typo4th paragraph
"he may be able to restart the program" .. better to say "he may be able to resume or continue .."
E241suggestionlast line of 1.1.2
"or until we explicitly clear it by using )reset".
E244suggestionthe word obtuse
might be considered obtuse :-)
E249suggestion×/ ⍳Max
If Max is too big, the result would be larger than the largest number that Dyalog APL can hold.
E249typo1.3 )SI
Formatting wrong for )SI
E262typoFirst paragraph, last line
"sometimes names Stops" should be "sometimes named Stops".
F286typo4G⊂ ZZZ9' ⎕FMT MN
Comma unnecessary in commentary, which itself is incorrectly formatted.
F288typo3.2.8 penultimate example
Commentary incorrectly formatted.
F289typo3.3.2 first example
Commentary incorrectly formatted.
G302debate1.2.1 first paragraph last line
"dynamic function" .. dfn or what ??
G308typo2.2.1 second paragraph
"Take a look to" s/b "Take a look at".
I335typo2nd bullet point
Remove first "one" from "items one from one another"
I344contentPenultimate paragraph
"more workspace than we have room for." Better "more workspace than is available."
I359typoAfter definitions
First occurrence of hogwash is spelled hoqwash(sic).
I369typoPenultimate paragraph, last line
One too many "then"s at the start of the line.
J390typo2 -/ Cum
should return one fewer element than

2 -/ Cum
56 32 56 104 63 38 37

2 -/ +/ Limits ∘.< Ages
56 32 56 104 63 38 37
I418content8.5 title
What is a fixpoint ?
1. Replace "function editor" with "editor" .. it's the same editor, no matter what's being edited.
2. Would the word "Signature" be better than "possible header structures" ?
K443contentCalculating Positions in a Matrix
In the first block of text on p443 the text reads "we can employ Decode ..". That is incorrect - the text should read "we can employ Encode ..".
P629contentGUI_List function
For the example and the text to work, GUI_List[5] should read
[5] ⍝ ''⎕WS 'Event' 'Select' 'ShowSel'
although the parentheses are superfluous.
X758contentSolution to C-1
The result of the second expression of C-1 is incorrect:
12 6 27 ⌊ 11 + ⍳3
12 6 14
X772contentSolution to K-11
The algorithms used for matrix division and inverse have been improved in Version 13.0 onwards. As a result of these improvements, the values of abc are closer to 2 ¯0.5 3.5 and therefore
3 5 ¯1+.×abc
returns 0 in 13.0 onwards.
Appendix 8783typoFirst sentence
.. are not developed ..