Mnemonics: Difference between revisions

Jump to navigation Jump to search
9,321 bytes added ,  17:58, 11 November 2020
(Created page with "'''Mnemonics''' can assist with remembering the meaning of APL glyphs where on they keyboard they are found for typing them. Both of these skills are ess...")
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''Mnemonics''' can assist with remembering the meaning of APL [[glyph]]s where on they keyboard they are found for [[typing glyphs|typing them]]. Both of these skills are essential for an effective APL programmer. This article currently provides examples such aide-mémoires, but will be completed in due time.
__FORCETOC__
'''Mnemonics''' can assist with [[learning resources|learning]] the meaning of APL [[glyph]]s and where on they keyboard they are found for [[typing glyphs|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 [[Comparison_with_traditional_mathematics#Identical|identical to their mathematical counterparts]].
 
<source lang=apl inline>⋄</source> (Diamond) separates statements. That is, no functions or operators can break through <source lang=apl inline>⋄</source>, just as diamonds are virtually indestructible.
 
<source lang=apl inline>⌺</source> looks like a <source lang=apl inline>⋄</source>-shaped [[Stencil]] laid on a piece of paper, <source lang=apl inline>⎕</source>.
 
<source lang=apl inline>!</source> is [[Binomial]] in addition to [[Factorial]], as the two are closely related.
 
[[File:I beam HEB 100.png|thumb|[[I-beam]] <source lang=apl inline>⌶</source> does look like an [[wikipedia:I-beam|I-beam]]]]
<source lang=apl inline>⌶</source> ([[I-beam]]) calls system services. APL was originally developed at [[IBM]], so system services were also IBM services. <source lang=apl inline>⌶</source> is an [[wikipedia:I-beam|I-beam]] and ''I-beam'' is pronounced almost identically to ''IBM''.
 
<source lang=apl inline>@</source> applies a function or substitutes elements ''[[at]]'' specific locations.


[[File:Bristol Type 223 top-view silhouette.png|thumb|right|The [[Grade]] glyphs look like [[wikipedia:supersonic transport|supersonic transport]]s]]
[[File:Bristol Type 223 top-view silhouette.png|thumb|The [[Grade]] glyphs <source lang=apl inline>⍋</source> and <source lang=apl inline>⍒</source> look like [[wikipedia:supersonic transport|supersonic transport]]s.]]
== Pairing glyphs with their meaning ==
<source lang=apl inline>⍋</source> and <source lang=apl inline>⍒</source> give the indices ([[grade]]s) needed to sort ascending and descending respectively, and look like an ascending and descending supersonic transport, respectively.
<source lang=apl inline>⍋</source> and <source lang=apl inline>⍒</source> give the indices ([[grade]]s) needed to sort ascending and descending respectively, and look like an ascending and descending supersonic transport, respectively.


<source lang=apl inline>⌽</source>, <source lang=apl inline>⊖</source>, and <source lang=apl inline>⍉</source> [[reverse]] or [[transpose]] an array over a given [[axis]]. The <source lang=apl inline>○</source> part of the glyphs symbolise the array, while the line component (<source lang=apl inline>|</source>, <source lang=apl inline>\</source>, or <source lang=apl inline>-</source>) indicates the line across which the reversal/transposal is done.
<source lang=apl inline>⌽</source>, <source lang=apl inline>⊖</source>, and <source lang=apl inline>⍉</source> [[reverse]] or [[transpose]] an array over a given [[axis]]. The <source lang=apl inline>○</source> part of the glyphs symbolise the array, while the line component (<source lang=apl inline>|</source>, <source lang=apl inline>\</source>, or <source lang=apl inline>-</source>) indicates the line across which the reversal/transposal is done.
[[File:TreeLog.jpg|thumb|The [[Log]] glyph <source lang=apl inline>⍟</source> looks like a tree log.]]
<source lang=apl inline>⍟</source> looks like the cross-section of a tree [[log]]
<source lang=apl inline>⍱</source> and <source lang=apl inline>⍲</source> ([[Nor]] and [[Nand]]) have the [[Not]] glyph <source lang=apl inline>~</source> on top of or overlaid on the [[Or]] glyph <source lang=apl inline>∨</source> and [[And]] glyph <source lang=apl inline>∧</source> respectively.
<source lang=apl inline>×</source> can be seen as an <math>x</math> when monadic, indicating the unknown [[sign]] to be determined.
<source lang=apl inline>+</source> negates the imaginary part (that is, it [[conjugate]]s) by analogy to monadic <source lang=apl inline>-</source> which negates both the real and the imaginary parts.
<source lang=apl inline>÷</source> takes a default left argument of <source lang=apl inline>1</source> (thus computing the [[reciprocal]]), that being the [[identity element]] of [[division]].


<source lang=apl inline>⌹</source> is [[matrix divide]] with a <source lang=apl inline>⎕</source> symbolising a matrix and an inscribed <source lang=apl inline>÷</source> for "divide".
<source lang=apl inline>⌹</source> is [[matrix divide]] with a <source lang=apl inline>⎕</source> symbolising a matrix and an inscribed <source lang=apl inline>÷</source> for "divide".
<source lang=apl inline>?</source> symbolises the unknown, and thus [[roll]]s dice and [[deal]]s cards randomly.
<source lang=apl inline>⍺</source> and <source lang=apl inline>⍵</source> are the leftmost and rightmost letters of the [[wikipedia:Greek alphabet|Greek alphabet]]. They therefore denote the left and right arguments of [[dfn]]s, respectively.
<source lang=apl inline>∊</source> is the Greek letter [[Epsilon]] which corresponds to the letter ''E'' for [[Enlist]] and [[Element of]].
<source lang=apl inline>⍴</source> is the Greek letter [[Rho]] which corresponds to the letter ''R'' for [[Reshape]].
<source lang=apl inline>~</source> is [[Not]] when monadic, but its dyadic form, [[Without]], can also be remembered as ''but not''.
<source lang=apl inline>⍨</source> is a monadic operator that looks like a face. When its derived function is applied monadically, it can be called ''[[self]]ie'', in that it applies the operand function to the argument with the argument itself as left argument too.
<source lang=apl inline>↑</source> and <source lang=apl inline>↓</source> ([[Mix]] and [[Split]]) increase and decrease rank (if possible) when used monadically.
<source lang=apl inline>↓</source> [[drop]]s elements, and so it points down, the direction in which things are dropped. Take uses <source lang=apl inline>↑</source> by analogy.
<source lang=apl inline>⍳</source> is the Greek letter [[Iota]] which corresponds to the letter ''I'' for [[Index generator]] and [[Index of]].
<source lang=apl inline>⍸</source> is also the Greek letter [[Iota]] which corresponds to the letter ''I'' for [[Indices]] and [[Interval Index]].
<source lang=apl inline>○</source> is a circle for [[Circular]] functions and the ratio between the circumference and the diameter of a circle, [[Pi times|Pi]].
<source lang=apl inline>⍥</source> and <source lang=apl inline>⍤</source> ([[Over]] and [[Atop]]) both apply the left operand after the right operand. However, <source lang=apl inline>⍥</source> has a larger "circle of influence" in that it applies the its right operand twice (once on each argument) while <source lang=apl inline>⍤</source> only applies it once (between the arguments).
<source lang=apl inline>*</source> and <source lang=apl inline>⍣</source> repeatedly apply multiplication and a function, respectively. The star symbolises [[power (function)]]/[[power (operator)]].
<source lang=apl inline>←</source> [[assign]]s by putting the value on its right into the name on its left.
<source lang=apl inline>→</source> points at the destination it is [[branch]]ing to.
<source lang=apl inline>⍬</source> ([[Zilde]]) is a combination of <source lang=apl inline>~</source> for [[Without]] and <source lang=apl inline>0</source> indicating numbers. Indeed, it is the "vector without numbers", equivalent to <source lang=apl inline>0~0</source>.
<source lang=apl inline>⊣</source> and <source lang=apl inline>⊢</source> point a finger towards the [[left]] and [[right]], which are exactly the argument they, respectively, return.
[[File:Computer console.jpg|thumb|The [[Quad]] glyph <source lang=apl inline>⎕</source> looks like a console.]]
<source lang=apl inline>⎕</source> is the prefix for all [[system name]]s, and also also manages input from the console as well as output to the console. For that, it is a stylised console. <source lang=apl inline>⍞</source> looks like a <source lang=apl inline>⎕</source> with a quote <source lang=apl inline>'</source> indicating [[string]] input and message output.
<source lang=apl inline>⌈</source> and <source lang=apl inline>⌊</source> are pictograms of a wall with a piece of [[ceiling]] and [[floor]], respectively.
<source lang=apl inline>⌈</source> and <source lang=apl inline>⌊</source> can also be seen as indicators on a vertical number line, pointing at the [[maximum]] and [[minimum]], respectively.
<source lang=apl inline>∇</source> is an upside-down Greek [[Delta]], which corresponds to the letter ''D'' for [[Defined function]] or (own) definition (for recursion).
<source lang=apl inline>⌸</source> ([[Key]]) applies a function for each collection of all elements that are [[equal]] (<source lang=apl inline>⌸</source>).
<source lang=apl inline>≡</source> can be see as a stack of layers. When used monadically, it finds the [[depth]] of an array.
<source lang=apl inline>≢</source> looks like a [[tally]] mark.
<source lang=apl inline>⊂</source> [[enclose]]s its argument in a layer of nesting, and [[Disclose]] uses <source lang=apl inline>⊃</source> by analogy. <source lang=apl inline>⊆</source> is exactly like <source lang=apl inline>⊂</source> except that it only does a [[conditional enclose]], namely only if the argument is [[simple]].
<source lang=apl inline>⊂</source> and <source lang=apl inline>⊆</source> enclose at specific locations, per a specification, so their dyadic forms are [[Partitioned enclose]] and [[Partition]], respectively.
<source lang=apl inline>∪</source> is a styled letter ''U'' for [[Unique] or [[Union]] if used dyadically.
<source lang=apl inline>⊥</source> looks like the [[base]] of a pillar. [[Antibase]] uses <source lang=apl inline>⊤</source> by analogy.
<source lang=apl inline>⍝</source> looks like a [[filament lamp]] and provides enlightenment by indicating [[comment]]s.
<source lang=apl inline>,</source> [[concatenate]]s arrays, much like the common punctuation symbol concatenates phrases. <source lang=apl inline>⍪</source> has an added styled row, indicating that for matrices, it concatenates additional rows.
<source lang=apl inline>.</source> is just a low dot, but performs the same operation (though generalised) as [[traditional mathematics]]' [[wikipedia:dot product|dot product]].
<source lang=apl inline>/</source> and <source lang=apl inline>⌿</source> are also called "by" which can be remembered as reduce by.


== Pairing glyphs/functionality with their keyboard locations ==
== Pairing glyphs/functionality with their keyboard locations ==
:''This list is incomplete; you can help by [{{fullurl:{{FULLPAGENAME}}|action=edit&section=2}} 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.
Below is a US English APL keyboard layout (from [[Dyalog APL]]), annotated with short mnemonics. Some of the mnemonics are then fully explained.


{{#css:.image img{width:100%;height:auto}}[[File:Keyboard Mnemonics.png]]
{{#css:.image img{width:100%;height:auto}}[[File:Keyboard Mnemonics.png]]


<source lang=apl inline>⋄</source> begins new APL expressions just like this button begins the main section of the keyboard.<br>
<source lang=apl inline>⋄</source> begins new APL expressions just like <kbd>`</kbd> button begins the main section of the keyboard.<br>
<source lang=apl inline>⌺</source> is a modified version of <source lang=apl inline>⌺</source>, so it is <kbd>Shift</kbd>+<source lang=apl inline>⋄</source>.
<source lang=apl inline>⌺</source> is a modified version of <source lang=apl inline>⌺</source>, so it is <kbd>Shift</kbd>+<source lang=apl inline>⋄</source>.


<source lang=apl inline>¨</source> applies a function to each 1 of the argument elements, so it is on <kbd>APL</kbd>+<kbd>1</kbd>.<br>
<source lang=apl inline>¨</source> applies a function to each 1 of the argument elements, so it is on <kbd>APL</kbd>+<kbd>1</kbd>.<br>
<source lang=apl inline>⌶</source> looks like a [[wikipedia:Roman numerals|Roman numeral]] 1, so it also lives on the <kbd>1</kbd>.
<source lang=apl inline>⌶</source> looks like a [[wikipedia:Roman numerals|Roman numeral]] 1, so it also lives on the <kbd>1</kbd>.
<source lang=apl inline>¯</source>, <source lang=apl inline><</source>, <source lang=apl inline>≤</source>, <source lang=apl inline>=</source>, <source lang=apl inline>≥</source>, <source lang=apl inline>></source>, and <source lang=apl inline>≠</source> form a block. The number line 1–9 (because 0 on the far right) is split into two [[equal]] halves by <kbd>5</kbd> so that gives <source lang=apl inline>=</source>. <kbd>4</kbd> and <kbd>6</kbd> are slightly less and more, respectively, so they give <source lang=apl inline>≤</source> and <source lang=apl inline>≥</source>. <kbd>3</kbd> and <kbd>7</kbd> are much less and more, respectively, so they give <source lang=apl inline><</source> and <source lang=apl inline>></source>. Finally, <kbd>2</kbd> is so much less that it is negative, giving the negative sign <source lang=apl inline>¯</source>, and <kbd>8</kbd> is so much greater that it is completely [[not equal|unequal]], <source lang=apl inline>≠</source>.
{{APL development}}{{APL glyphs}}
{{APL development}}{{APL glyphs}}
[[Category:APL character set]]
[[Category:APL character set]]
96

edits

Navigation menu