Welcome to this, the website which accompanies the book, Mastering Dyalog APL, written by Bernard Legrand.
To purchase the book please visit Amazon.co.uk. To download the book in
PDF format for free, please click here.
Please note that the book is only available via Amazon in the UK, irrespective of where you are in the world. The book stock
is held on what is effectively a Just In Time basis, so do not be discouraged if it is listed as
"Temporarily out of stock" - there are plenty of copies available !
Details:
Title: Mastering Dyalog APL: A Complete Introduction to Dyalog APL
Author: Bernard Legrand
ISBN-10: 0956463800
ISBN-13: 978-0956463807
No book is free of errors, and this we are sure is no exception. We have listed ones that we know about
in the following section; if you find a new item of interest, and would like to report it, then please
could you do so by sending an email to support@dyalog.com.
If you like the book (or even if you don't), please let us know too !
Errata as of 2012-01-17
Chapter |
Page |
Erratum_Type |
Comment
|
Intro |
3 |
typo |
Utilities and Data
"WorkSpace" should be "Workspace".
|
Intro |
3 |
suggestion |
Utilities and Data
DyalogTutor_EN should be in the index.
|
Intro |
4 |
typo |
Penultimate paragraph
"justifyable" should be "justifiable".
|
Intro |
10 |
suggestion |
2nd paragraph
Alter to read "..the other symbols (...) we have discussed so far are called.."
|
Intro |
16 |
typo |
First line
Remove extraneous "that" in first line.
|
Intro |
29 |
typo |
2nd bullet point, last line
Add "is" in "there __ no need .."
|
A |
36 |
typo |
1.3.1 end of 1st paragraph
Add "," in "in the same way as__ for .."
|
A |
46 |
suggestion |
End 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←{}
a b←1 2
b
1 2
For that reason the () in the assignment statement are strongly recommended.
|
B |
51 |
debate |
3.2
"A single number has no dimensions" .. what about ⍴,1 ?
|
B |
56 |
typo |
Display of MonVec
There should be two spaces between "March" and "April", as between the other months.
|
B |
61 |
suggestion |
5.5.2
Quicker than Text[;1]←0 would be Text←(⍴Text)⍴0 and similarly for Vector.
|
B |
62 |
typo |
5.6
4 2 ⌷ Tests returns 40, not 78.
|
B |
65 |
suggestion |
penultimate paragraph
Suggest "but it will not be long before you understand immediately what it means."
|
B |
71 |
suggestion |
Remark
Consider adding a reference to G-1.1.5 or I.7 which explain the difference between
empty numeric and character vectors.
|
B |
71 |
typo |
Penultimate bullet point
"which is equivalent to ""Save As""".
|
B |
71 |
typo |
last bullet point
remove "," after "APL".
|
B |
75 |
typo |
8.4 First sentence
dws, which stands for Dyalog WorkSpace.
|
B |
87 |
suggestion |
SPE-6
Explain further the uses of Monadic Index.
|
B |
87 |
typo |
Penultimate paragraph
Extra "a" in the sentence "Applied to a an Enumerable .."
|
C |
96 |
typo |
Last paragraph of Warning!
Should read "why we recommend that you do all .." (remove "to").
|
C |
110 |
typo |
Row-wise multiplication
Second example should read "Tam×[1]5 2 7" - not 5 2 10
|
C |
121 |
typo |
12.1 Example
Font wrong in comment "We ask for the positions of 5"; "ask" and "the positions of" too big.
|
D |
152 |
content |
Sesction 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.
|
D |
156 |
content |
Section 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 !
|
D |
166 |
typo |
1/2 way down page
"all we need do is replace..". Add "to".
|
D |
171 |
content |
If condition 1
The comment to the right of "Block 1" should read: "Executed if Condition 1 is satisfied"
|
D |
181 |
typo |
First line of 4.6.1 and 4.6.2
"In any kind of loop" is in too-small a font.
|
D |
190 |
content |
Jump if true..
The expression
→Destination×⍳Condition
works only if ⎕io is 1.
|
D |
203 |
suggestion |
1/2 way down page
Should Prompt1[1] be ⎕←'What are the limits' ?
|
D |
204 |
suggestion |
Hint
Another alternative is to type →
|
D |
216 |
content |
At 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.
|
D |
222 |
suggestion |
Throughout page
Rather than Activating a menu option, it should be selected. This may occur elsewhere in
the book.
|
D |
236 |
typo |
First paragraph or Spe-7
Remove "," immediately before last ;InEach.
|
E |
239 |
typo |
4th paragraph
"he may be able to restart the program" .. better to say "he may be able to resume or continue .."
|
E |
241 |
suggestion |
last line of 1.1.2
"or until we explicitly clear it by using )reset".
|
E |
244 |
suggestion |
the word obtuse
might be considered obtuse :-)
|
E |
249 |
suggestion |
×/ ⍳Max
If Max is too big, the result would be larger than the largest number that Dyalog APL can hold.
|
E |
249 |
typo |
1.3 )SI
Formatting wrong for )SI
|
E |
262 |
typo |
First paragraph, last line
"sometimes names Stops" should be "sometimes named Stops".
|
F |
286 |
typo |
4G⊂ ZZZ9' ⎕FMT MN
Comma unnecessary in commentary, which itself is incorrectly formatted.
|
F |
288 |
typo |
3.2.8 penultimate example
Commentary incorrectly formatted.
|
F |
289 |
typo |
3.3.2 first example
Commentary incorrectly formatted.
|
G |
302 |
debate |
1.2.1 first paragraph last line
"dynamic function" .. dfn or what ??
|
G |
308 |
typo |
2.2.1 second paragraph
"Take a look to" s/b "Take a look at".
|
I |
335 |
typo |
2nd bullet point
Remove first "one" from "items one from one another"
|
I |
344 |
content |
Penultimate paragraph
"more workspace than we have room for." Better "more workspace than is available."
|
I |
359 |
typo |
After definitions
First occurrence of hogwash is spelled hoqwash(sic).
|
I |
369 |
typo |
Penultimate paragraph, last line
One too many "then"s at the start of the line.
|
I |
418 |
content |
8.5 title
What is a fixpoint ?
|
J |
422 |
suggestion |
10.1.2
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" ?
|
K |
443 |
content |
Calculating 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 ..".
|
P |
629 |
content |
GUI_List function
For the example and the text to work, GUI_List[5] should read [5] ⍝ 'Win.show'⎕WS 'Event' 'Select' 'ShowSel' although the
parentheses are superfluous.
|
X |
758 |
content |
Solution to C-1
The result of the second expression of C-1 is incorrect:
12 6 27 ⌊ 11 + ⍳3
12 6 14
|
X |
772 |
content |
Solution 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 8 |
783 |
typo |
First sentence
.. are not developed ..
|