Dyalog Ltd

Minchens Court
Minchens Lane
Bramley
Hampshire
RG26 5BH
United Kingdom

Phone:
+ 44 (0) 1256 830 030

Fax:
+ 44 (0) 1256 830 031

e-mail:
  support@dyalog.com
  sales@dyalog.com

 





 

Mastering Dyalog APL

The book

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



Companion Files

Click here to download the companion files; this is a zip file.


Errata

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 ..