Mnemonics can assist with learning the meaning of APL glyphs and where on they keyboard they are found for typing them. Both of these skills are essential for an effective APL programmer. This article provides such aide-mémoires.
Pairing glyphs with their meaning
Many glyphs have meaning identical to their mathematical counterparts.
⋄ (Diamond) separates statements. That is, no functions or operators can break through
⋄, just as diamonds are virtually indestructible.
⌺ looks like a
⋄-shaped Stencil laid on a piece of paper,
@ applies a function or substitutes elements at specific locations.
⍒ give the indices (grades) needed to sort ascending and descending respectively, and look like an ascending and descending supersonic transport, respectively.
⍉ reverse or transpose an array over a given axis. The
○ part of the glyphs symbolise the array, while the line component (
-) indicates the line across which the reversal/transposal is done.
⍟ looks like the cross-section of a tree log
× can be seen as an when monadic, indicating the unknown sign to be determined.
+ negates the imaginary part (that is, it conjugates) by analogy to monadic
- which negates both the real and the imaginary parts.
⌹ is matrix divide with a
⎕ symbolising a matrix and an inscribed
÷ for "divide".
⍨ is a monadic operator that looks like a face. When its derived function is applied monadically, it can be called selfie, in that it applies the operand function to the argument with the argument itself as left argument too.
↓ drops elements, and so it points down, the direction in which things are dropped. Take uses
↑ by analogy.
⍤ (Over and Atop) both apply the left operand after the right operand. However,
⍥ has a larger "circle of influence" in that it applies the its right operand twice (once on each argument) while
⍤ only applies it once (between the arguments).
← assigns by putting the value on its right into the name on its left.
→ points at the destination it is branching to.
⎕ is the prefix for all system names, and also also manages input from the console as well as output to the console. For that, it is a stylised console.
⍞ looks like a
⎕ with a quote
' indicating string input and message output.
≡ can be see as a stack of layers. When used monadically, it finds the depth of an array.
≢ looks like a tally mark.
∪ is a styled letter U for [[Unique] or Union if used dyadically.
, concatenates arrays, much like the common punctuation symbol concatenates phrases.
⍪ has an added styled row, indicating that for matrices, it concatenates additional rows.
⌿ are also called "by" which can be remembered as reduce by.
Pairing glyphs/functionality with their keyboard locations
- This list is incomplete; you can help by expanding it.
Below is a US English APL keyboard layout (from Dyalog APL), annotated with short mnemonics. Some of the mnemonics are then fully explained.
⋄ begins new APL expressions just like ` button begins the main section of the keyboard.
⌺ is a modified version of
⌺, so it is Shift+
¨ applies a function to each 1 of the argument elements, so it is on APL+1.
⌶ looks like a Roman numeral 1, so it also lives on the 1.
≠ form a block. The number line 1–9 (because 0 on the far right) is split into two equal halves by 5 so that gives
=. 4 and 6 are slightly less and more, respectively, so they give
≥. 3 and 7 are much less and more, respectively, so they give
>. Finally, 2 is so much less that it is negative, giving the negative sign
¯, and 8 is so much greater that it is completely unequal,
|APL development |
|Interface||Session ∙ Typing glyphs (on Linux) ∙ Fonts ∙ Text editors|
|Publications||Introductions ∙ Learning resources ∙ Simple examples ∙ Advanced examples ∙ Mnemonics ∙ Standards ∙ A Dictionary of APL ∙ Case studies ∙ Documentation suites ∙ Books ∙ Papers ∙ Videos ∙ Periodicals ∙ German terminology ∙ Neural networks|
|Sharing code||Backwards compatibility ∙ APLcart ∙ APLTree ∙ APL-Cation ∙ Dfns workspace ∙ Tatin|
|Vendors||APL2000 ∙ Dyalog ∙ GNU APL community ∙ IBM ∙ IPSA ∙ STSC|
|APL glyphs |
|Information||Glyph ∙ Typing glyphs (on Linux) ∙ Unicode ∙ Fonts ∙ Mnemonics ∙ Overstrikes|
|Individual glyphs||Jot (|