https://aplwiki.com/api.php?hidebots=1&urlversion=1&days=30&limit=50&target=Reduce&action=feedrecentchanges&feedformat=atom
APL Wiki - Changes related to "Reduce" [en-gb]
2024-03-29T09:47:57Z
Related changes
MediaWiki 1.38.2
https://aplwiki.com/index.php?title=Outer_Product&diff=11375&oldid=10462
Outer Product
2024-03-19T00:47:42Z
<p><span dir="auto"><span class="autocomment">Syntax</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:47, 19 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l2">Line 2:</td>
<td colspan="2" class="diff-lineno">Line 2:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Syntax ===</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>=== Syntax ===</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Outer Product differs from all other [[monadic operator]]s, which are written as a single [[glyph]], with the operand on the left. For [[backwards compatibility|historical reasons]], the outer product operator is a [[bi-glyph]] denoted as <syntaxhighlight lang=apl inline>∘.</syntaxhighlight>, and its operand appears on the right. This special notation is derived from the <syntaxhighlight lang=apl inline>f.g</syntaxhighlight> notation of [[inner product]]:<ref>[[Adin Falkoff|Falkoff, A.D.]] and [[Ken Iverson|K.E. Iverson]]. [https://www.jsoftware.com/papers/APL360TerminalSystem1.htm#ip The APL\360 Terminal System: Inner and Outer Products]. Research Report RC-1922. [[<del style="font-weight: bold; text-decoration: none;">IBM]] </del>Watson Research Center. 1967-10-16.</ref></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Outer Product differs from all other [[monadic operator]]s, which are written as a single [[glyph]], with the operand on the left. For [[backwards compatibility|historical reasons]], the outer product operator is a [[bi-glyph]] denoted as <syntaxhighlight lang=apl inline>∘.</syntaxhighlight>, and its operand appears on the right. This special notation is derived from the <syntaxhighlight lang=apl inline>f.g</syntaxhighlight> notation of [[inner product]]:<ref>[[Adin Falkoff|Falkoff, A.D.]] and [[Ken Iverson|K.E. Iverson]]. [https://www.jsoftware.com/papers/APL360TerminalSystem1.htm#ip The APL\360 Terminal System: Inner and Outer Products]. Research Report RC-1922. <ins style="font-weight: bold; text-decoration: none;">IBM </ins>[[Watson Research Center<ins style="font-weight: bold; text-decoration: none;">]]</ins>. 1967-10-16.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><blockquote></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><blockquote></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The result of an inner product is an array with rank two less than the sum of the argument ranks. The result of an outer product, on the other hand, is always an array of rank equal to the sum of the argument ranks. This follows from the fact that the reduction operation, which collapses two dimensions in an inner product, is not used in the outer product. The notation for outer product reflects this by canonically using a small circle as the first symbol. Thus, the ordinary outer product is written as <code>a∘.×b</code> .</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The result of an inner product is an array with rank two less than the sum of the argument ranks. The result of an outer product, on the other hand, is always an array of rank equal to the sum of the argument ranks. This follows from the fact that the reduction operation, which collapses two dimensions in an inner product, is not used in the outer product. The notation for outer product reflects this by canonically using a small circle as the first symbol. Thus, the ordinary outer product is written as <code>a∘.×b</code> .</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Timeline_of_APL_primitives&diff=11368&oldid=11353
Timeline of APL primitives
2024-03-18T22:14:56Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:14, 18 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(4 intermediate revisions by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Year !! Dialect !! Primitives</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Year !! Dialect !! Primitives</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1965 || [[IVSYS/7090]] || [[Identity]] (<syntaxhighlight lang=apl inline>+</syntaxhighlight>), [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1965 || [[IVSYS/7090]] || [[Identity]] (<syntaxhighlight lang=apl inline>+</syntaxhighlight>), [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]] <ins style="font-weight: bold; text-decoration: none;">(including indexed)</ins>, [[Bracket indexing]], [[Branch]]/[[Label]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1966 || [[APL\360]] || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Reverse]]/[[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1966 || [[APL\360]] || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Reverse]]/[[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l15">Line 15:</td>
<td colspan="2" class="diff-lineno">Line 15:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1973 || [[APL.SV]] || [[Execute]], [[Format]], [[Scan]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1973 || [[APL.SV]] || [[Execute]], [[Format]], [[Scan]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">|-</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">| 1974 || [[APL/700]] || [[Union]], [[Intersection]], [[Set Difference]] (but these functions only return unique elements), [[modified assignment]] (scalar dyadics only)</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1980 || [[SHARP APL]] || [[GCD]]/[[LCM]] extending [[Or]]/[[And]] (proposed [[Eugene McDonnell|McDonnell]] 1975)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1980 || [[SHARP APL]] || [[GCD]]/[[LCM]] extending [[Or]]/[[And]] (proposed [[Eugene McDonnell|McDonnell]] 1975)</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l35">Line 35:</td>
<td colspan="2" class="diff-lineno">Line 37:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[Enlist]] (<syntaxhighlight lang=apl inline>∊</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>), [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[Enlist]] (<syntaxhighlight lang=apl inline>∊</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>), [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>)<ins style="font-weight: bold; text-decoration: none;">, [[selective assignment]]</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> short left argument for [[Take]], [[Drop]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> short left argument for [[Take]], [[Drop]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1989 || [[SHARP APL]] || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠<del style="font-weight: bold; text-decoration: none;"></syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</del></syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1989 || [[SHARP APL]] || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | ? || [[SHARP APL]] || [[From]] ([[Rationalized APL]] 1983)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | ? || [[SHARP APL]] || [[From]] ([[Rationalized APL]] 1983)</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Matrix_Divide&diff=11357&oldid=9501
Matrix Divide
2024-03-18T01:40:40Z
<p>History in APL\360</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:40, 18 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Matrix Divide|⌹}} is a [[dyadic function]] that performs [[wikipedia:matrix division|matrix division]] between two [[argument]]s of rank 2 or less. Some dialects automatically apply it to rank-2 [[subarray]]s of higher-rank arguments. It shares the [[glyph]] ''Quad Divide'' <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> (often called ''Domino'') with the monadic function [[Matrix Inverse]].</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Matrix Divide|⌹}} is a [[dyadic function]] that performs [[wikipedia:matrix division|matrix division]] between two [[argument]]s of rank 2 or less. Some dialects automatically apply it to rank-2 [[subarray]]s of higher-rank arguments. It shares the [[glyph]] ''Quad Divide'' <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> (often called ''Domino'') with the monadic function [[Matrix Inverse]]<ins style="font-weight: bold; text-decoration: none;">. These functions were added to [[APL\360]] in 1970<ref>"Report of the APL SHARE conference" ([https://dl.acm.org/action/showBmPdf?doi=10.1145%2F987461 pdf]). [[APL Quote-Quad]] Volume 2, Number 3. 1970-09.</ref> and are widely supported in modern APL</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l78">Line 78:</td>
<td colspan="2" class="diff-lineno">Line 78:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* J [https://www.jsoftware.com/help/dictionary/d131.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/percentdot#dyadic NuVoc] (as <syntaxhighlight lang=j inline>%.</syntaxhighlight>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* J [https://www.jsoftware.com/help/dictionary/d131.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/percentdot#dyadic NuVoc] (as <syntaxhighlight lang=j inline>%.</syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Matrix_Inverse&diff=11356&oldid=9261
Matrix Inverse
2024-03-18T01:39:22Z
<p>History in APL\360</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:39, 18 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Matrix Inverse|⌹}} is a [[monadic]] [[primitive function]] that returns the [[wikipedia:matrix inverse|inverse]] of a [[simple]] [[numeric]] array of [[rank]] 2 or lower. Some dialects automatically apply it to rank-2 [[subarray]]s of higher-rank [[argument]]s. It shares the [[glyph]] ''Quad Divide'' <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> (often called ''Domino'') with the dyadic function [[Matrix Divide]].</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Matrix Inverse|⌹}} is a [[monadic]] [[primitive function]] that returns the [[wikipedia:matrix inverse|inverse]] of a [[simple]] [[numeric]] array of [[rank]] 2 or lower. Some dialects automatically apply it to rank-2 [[subarray]]s of higher-rank [[argument]]s. It shares the [[glyph]] ''Quad Divide'' <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> (often called ''Domino'') with the dyadic function [[Matrix Divide]]<ins style="font-weight: bold; text-decoration: none;">. These functions were added to [[APL\360]] in 1970<ref>"Report of the APL SHARE conference" ([https://dl.acm.org/action/showBmPdf?doi=10.1145%2F987461 pdf]). [[APL Quote-Quad]] Volume 2, Number 3. 1970-09.</ref> and are widely supported in modern APL</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l67">Line 67:</td>
<td colspan="2" class="diff-lineno">Line 67:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* J [https://www.jsoftware.com/help/dictionary/d131.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/percentdot NuVoc] (as <syntaxhighlight lang=j inline>%.</syntaxhighlight>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* J [https://www.jsoftware.com/help/dictionary/d131.htm Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/percentdot NuVoc] (as <syntaxhighlight lang=j inline>%.</syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Conjugate&diff=11354&oldid=10926
Conjugate
2024-03-18T01:19:40Z
<p>History</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 01:19, 18 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l44">Line 44:</td>
<td colspan="2" class="diff-lineno">Line 44:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Like [[Negate]], Conjugate almost never suffers issues with numerical precision. This is because negating a component of a complex number is exact in all common number systems.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Like [[Negate]], Conjugate almost never suffers issues with numerical precision. This is because negating a component of a complex number is exact in all common number systems.</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== History ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In early APLs, which did not support complex numbers, monadic <syntaxhighlight lang=apl inline>+</syntaxhighlight> returned its argument unchanged; however, this was not initially considered as a restriction of the complex conjugate to real numbers. In fact, [[Phil Abrams]]' report on [[IVSYS/7090]] defined <syntaxhighlight lang=apl inline>+A</syntaxhighlight> to be <syntaxhighlight lang=apl inline>0+A</syntaxhighlight>, implying that the function should extend to the identity on complex numbers as well. The extension to complex conjugate was included in a 1977 proposal by Paul Penfield,<ref>Paul Penfield. [https://dl.acm.org/doi/full/10.1145/586003.586007 Notation for complex "part" functions]. [[APL Quote Quad]] Volume 8, Issue 1. 1977-09.</ref> who noted that it had already appeared in a 1975 IBM publication documenting APL.<ref>[[IBM]]. [https://archive.org/details/bitsavers_ibmaplGC2675_6717824/mode/2up APL Language]. GC26-3847-0. 1975-03.</ref> Penfield's work became the basis for the first APL [[complex number]] implementation, in [[SHARP APL]].<ref>[[Eugene McDonnell]]. SATN-40: [https://www.jsoftware.com/papers/satn40.htm Complex Numbers]. 1981-06-20.</ref> Conjugate was supported in SHARP and all later APLs to implement complex numbers.</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== See also ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l66">Line 66:</td>
<td colspan="2" class="diff-lineno">Line 70:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/arithmetic.html#basic-arithmetic BQN]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/arithmetic.html#basic-arithmetic BQN]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar monadic functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]][[Category:Scalar monadic functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Timeline_of_APL_primitives&diff=11353&oldid=11341
Timeline of APL primitives
2024-03-18T00:24:45Z
<p>Order APL2 primitives more sensibly</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:24, 18 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(2 intermediate revisions by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], [[Close composition|close]] [[Over]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Atop]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted) <br/> [[<del style="font-weight: bold; text-decoration: none;">Conjugate</del>]] <del style="font-weight: bold; text-decoration: none;">with </del>[[<del style="font-weight: bold; text-decoration: none;">complex number</del>]] <del style="font-weight: bold; text-decoration: none;">support </del>(proposed Paul Penfield 1977; IBM documenation by 1975)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], [[Close composition|close]] [[Over]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Atop]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted) <br/> [[<ins style="font-weight: bold; text-decoration: none;">complex]] extensions: [[Circular]] functions 8 and up ([[Eugene McDonnell|McDonnell</ins>]] <ins style="font-weight: bold; text-decoration: none;">1977), </ins>[[<ins style="font-weight: bold; text-decoration: none;">Conjugate</ins>]] (proposed Paul Penfield 1977; IBM documenation by 1975)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">|-</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">| 1982 || [[SHARP APL]] || [[complex Floor]], Ceiling, Modulus, Encode ([[Eugene McDonnell|McDonnell]] 1973)</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[<del style="font-weight: bold; text-decoration: none;">Partition</del>]] (<syntaxhighlight lang=apl inline><del style="font-weight: bold; text-decoration: none;">⊂</del></syntaxhighlight>)<del style="font-weight: bold; text-decoration: none;">, </del>[[<del style="font-weight: bold; text-decoration: none;">First</del>]] (<syntaxhighlight lang=apl inline><del style="font-weight: bold; text-decoration: none;">↑</del></syntaxhighlight>) <del style="font-weight: bold; text-decoration: none;">and </del>[[<del style="font-weight: bold; text-decoration: none;">Mix</del>]] (<syntaxhighlight lang=apl inline><del style="font-weight: bold; text-decoration: none;">⊃</del></syntaxhighlight>) <del style="font-weight: bold; text-decoration: none;">opposite to NARS</del>, [[<del style="font-weight: bold; text-decoration: none;">Index (function)|Index</del>]] (<syntaxhighlight lang=apl inline><del style="font-weight: bold; text-decoration: none;">⌷</del></syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>), [[<del style="font-weight: bold; text-decoration: none;">Enlist</del>]] (<syntaxhighlight lang=apl inline><del style="font-weight: bold; text-decoration: none;">∊</del></syntaxhighlight>)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[<ins style="font-weight: bold; text-decoration: none;">First</ins>]] (<syntaxhighlight lang=apl inline><ins style="font-weight: bold; text-decoration: none;">↑</ins></syntaxhighlight>) <ins style="font-weight: bold; text-decoration: none;">and </ins>[[<ins style="font-weight: bold; text-decoration: none;">Mix</ins>]] (<syntaxhighlight lang=apl inline><ins style="font-weight: bold; text-decoration: none;">⊃</ins></syntaxhighlight>) <ins style="font-weight: bold; text-decoration: none;">opposite to NARS, </ins>[[<ins style="font-weight: bold; text-decoration: none;">Partition</ins>]] (<syntaxhighlight lang=apl inline><ins style="font-weight: bold; text-decoration: none;">⊂</ins></syntaxhighlight>), [[<ins style="font-weight: bold; text-decoration: none;">Enlist</ins>]] (<syntaxhighlight lang=apl inline><ins style="font-weight: bold; text-decoration: none;">∊</ins></syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>), [[<ins style="font-weight: bold; text-decoration: none;">Index (function)|Index</ins>]] (<syntaxhighlight lang=apl inline><ins style="font-weight: bold; text-decoration: none;">⌷</ins></syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> short left argument for [[Take]], [[Drop]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> short left argument for [[Take]], [[Drop]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=I-Beam&diff=11345&oldid=10617
I-Beam
2024-03-17T15:35:56Z
<p><span dir="auto"><span class="autocomment">History: </span> Specific Dyalog version</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:35, 17 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>I-Beam was introduced in [[APL\360]] as an [[ambivalent function]] for implementers to execute [[wikipedia:IBM System/360|IBM System/360]] (''I-Beam'' being pronounced very similarly to ''IBM'') instructions from program control. The convenience of this lead to I-Beam becoming directly available for use by anyone.<ref>[https://dl.acm.org/doi/pdf/10.1145/585923.585925 The Design of APL]</ref> However, modern IBM-derived APLs replace all I-Beams with [[quad name]]s. For example, <syntaxhighlight lang=apl inline>5⌶</syntaxhighlight> became <syntaxhighlight lang=apl inline>⎕DL</syntaxhighlight> ([[Delay]]) while changing time unit from [[wikipedia:jiffy|jiffies]] of 1⁄300<sup>th</sup> of a second to a whole second.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>I-Beam was introduced in [[APL\360]] as an [[ambivalent function]] for implementers to execute [[wikipedia:IBM System/360|IBM System/360]] (''I-Beam'' being pronounced very similarly to ''IBM'') instructions from program control. The convenience of this lead to I-Beam becoming directly available for use by anyone.<ref>[https://dl.acm.org/doi/pdf/10.1145/585923.585925 The Design of APL]</ref> However, modern IBM-derived APLs replace all I-Beams with [[quad name]]s. For example, <syntaxhighlight lang=apl inline>5⌶</syntaxhighlight> became <syntaxhighlight lang=apl inline>⎕DL</syntaxhighlight> ([[Delay]]) while changing time unit from [[wikipedia:jiffy|jiffies]] of 1⁄300<sup>th</sup> of a second to a whole second.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Later, after it became common to use arrays as operands, [[Dyalog APL]] began using the [[glyph]] as an operator where the operand selects functionality. It is used for testing experimental features, some of which may eventually become primitives or quad names. For example, <syntaxhighlight lang=apl inline>819⌶</syntaxhighlight> became <syntaxhighlight lang=apl inline>⎕C</syntaxhighlight> ([[Case Convert]]), while introducing distinction between case folding (for case insensitive comparisons) and case mapping (for human presentation forms).</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Later, after it became common to use arrays as operands, [[Dyalog APL <ins style="font-weight: bold; text-decoration: none;">12.1</ins>]] began using the [[glyph]] as an operator where the operand selects functionality. It is used for testing experimental features, some of which may eventually become primitives or quad names. For example, <syntaxhighlight lang=apl inline>819⌶</syntaxhighlight> became <syntaxhighlight lang=apl inline>⎕C</syntaxhighlight> ([[Case Convert]]), while introducing distinction between case folding (for case insensitive comparisons) and case mapping (for human presentation forms).</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Mnemonics ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Mnemonics ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Table&diff=11343&oldid=10642
Table
2024-03-17T15:33:11Z
<p>History</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:33, 17 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l66">Line 66:</td>
<td colspan="2" class="diff-lineno">Line 66:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>YZABCDEFGHIJKLMNOPQRSTUV</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>YZABCDEFGHIJKLMNOPQRSTUV</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== History ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Table was implemented in [[SHARP APL]] release 19.0,<ref>[[Robert Bernecky]]. [https://dl.acm.org/citation.cfm?id=55632 An Introduction to Function Rank] at [[APL88]]. [[APL Quote Quad]], Volume 18, Issue 2. December 1987.</ref> and included in [[A Dictionary of APL]] in the same year. It was eventually included [[ISO/IEC 13751:2001]] standard, although other dialects had generally not adopted it: a 2005 review lists only a non-conforming implementation in [[APLX]].<ref>F.H.D. van Batenburg. [http://archive.vector.org.uk/art10000930 Conformity of APL Implementations to the ISO APL Standard]. [[Vector journal]] Volume 21, No.3. 2005-05.</ref> Table was added in [[Dyalog APL 12.1]], released in 2009, and it generally appears in modern dialects (for example [[ngn/apl]] and [[Kap]]).</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Timeline_of_APL_primitives&diff=11341&oldid=11331
Timeline of APL primitives
2024-03-17T13:24:12Z
<p>Bernecky's "An introduction to function rank" cites release 19.0 for both Table and the Take/Drop extension</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:24, 17 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(5 intermediate revisions by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Year !! Dialect !! Primitives</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Year !! Dialect !! Primitives</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1965 || [[IVSYS/7090]] || [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1965 || [[IVSYS/7090]] || <ins style="font-weight: bold; text-decoration: none;">[[Identity]] (<syntaxhighlight lang=apl inline>+</syntaxhighlight>), </ins>[[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1966 || [[APL\360]] || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1966 || [[APL\360]] || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], <ins style="font-weight: bold; text-decoration: none;">[[Reverse]]/</ins>[[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1968 || [[APL\360]] || [[Signum]], [[Deal]], [[Pi times]], [[Circular]], [[Nand]], [[Nor]], [[Take]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Drop]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Grade]], [[Rotate First]] (<syntaxhighlight lang=apl inline>⊖</syntaxhighlight>), [[I-Beam]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1968 || [[APL\360]] || [[Signum<ins style="font-weight: bold; text-decoration: none;">]], [[Logarithm</ins>]], [[Deal]], [[Pi times]], [[Circular]], [[Nand]], [[Nor]], [[Take]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Drop]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Grade]], <ins style="font-weight: bold; text-decoration: none;">[[Reverse First]]/</ins>[[Rotate First]] (<syntaxhighlight lang=apl inline>⊖</syntaxhighlight>), [[I-Beam]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1970 || [[APL\360]] || overtake with [[Take]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1970 || [[APL\360]] || overtake with [[Take]]</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], close [[Over]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Atop]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], <ins style="font-weight: bold; text-decoration: none;">[[Close composition|</ins>close<ins style="font-weight: bold; text-decoration: none;">]] </ins>[[Over]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Atop]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted<ins style="font-weight: bold; text-decoration: none;">) <br/> [[Conjugate]] with [[complex number]] support (proposed Paul Penfield 1977; IBM documenation by 1975</ins>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l33">Line 33:</td>
<td colspan="2" class="diff-lineno">Line 33:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1984 || [[APL2]] || [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡<ins style="font-weight: bold; text-decoration: none;"></syntaxhighlight>), [[Enlist]] (<syntaxhighlight lang=apl inline>∊</ins></syntaxhighlight>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || short left argument for [[Take]], [[Drop]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1987 || [[SHARP APL]] || <ins style="font-weight: bold; text-decoration: none;">[[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> </ins>short left argument for [[Take]], [[Drop]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1989 || [[SHARP APL]] || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1989 || [[SHARP APL]] || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><!-- | ? || [[SHARP APL]] <del style="font-weight: bold; text-decoration: none;"> </del>|| [[From]] ([[Rationalized APL]] 1983)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><!-- | ? || [[SHARP APL]] <ins style="font-weight: bold; text-decoration: none;"> </ins>|| [[From]] ([[Rationalized APL]] 1983)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|- --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|- --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2009 || [[NARS2000]] || [[Function train]]s (proposed [[Ken Iverson|Iverson]] and [[Eugene McDonnell|McDonnell]] 1989; [[J]] 1990)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2009 || [[NARS2000]] || [[Function train]]s (proposed [[Ken Iverson|Iverson]] and [[Eugene McDonnell|McDonnell]] 1989; [[J]] 1990)</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l45">Line 45:</td>
<td colspan="2" class="diff-lineno">Line 45:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2010 || [[NARS2000]] || [[Tally]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>, changed to <syntaxhighlight lang=apl inline>≢</syntaxhighlight> following Dyalog, 2011) ([[A+]] 1988, [[J]] 1990)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2010 || [[NARS2000]] || [[Tally]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>, changed to <syntaxhighlight lang=apl inline>≢</syntaxhighlight> following Dyalog, 2011) ([[A+]] 1988, [[J]] 1990)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2010 || [[NARS2000]] || [[Indices]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[K]] 1996<del style="font-weight: bold; text-decoration: none;">; </del>[[J]] 2003)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2010 || [[NARS2000]] || [[Indices]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[K]] 1996<ins style="font-weight: bold; text-decoration: none;">, </ins>[[J]] 2003)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>) (SHARP <del style="font-weight: bold; text-decoration: none;">APL </del>(close) 1981)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>) (SHARP (close) 1981)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986<del style="font-weight: bold; text-decoration: none;">, </del>[[J]] 1990)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986<ins style="font-weight: bold; text-decoration: none;">; </ins>[[J]] 1990)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] 1990)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)--></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] 1990)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)--></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l55">Line 55:</td>
<td colspan="2" class="diff-lineno">Line 55:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]] 1994) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP <del style="font-weight: bold; text-decoration: none;">APL </del>1983)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]] 1994) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP 1983)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l61">Line 61:</td>
<td colspan="2" class="diff-lineno">Line 61:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2019 || [[dzaima/APL]] || [[Reverse Compose]] (<syntaxhighlight lang=apl inline>⍛</syntaxhighlight>) ([[I]] 2012, [[Extended Dyalog APL]] 2019) <!-- <br/> [[Pair]] (<syntaxhighlight lang=apl inline>⍮</syntaxhighlight>) ([[Nial]] dyadic 1982, [[I]] 2012) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2019 || [[dzaima/APL]] || [[Reverse Compose]] (<syntaxhighlight lang=apl inline>⍛</syntaxhighlight>) ([[I]] 2012, [[Extended Dyalog APL]] 2019) <!-- <br/> [[Pair]] (<syntaxhighlight lang=apl inline>⍮</syntaxhighlight>) ([[Nial]] dyadic 1982, [[I]] 2012) --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP <del style="font-weight: bold; text-decoration: none;">APL </del>(close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Template:APL_built-ins&diff=11333&oldid=11235
Template:APL built-ins
2024-03-17T06:36:11Z
<p>Add "Primitives" super-group with link to timeline, remove "Structural functions" redlink</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 06:36, 17 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><noinclude>__NOTITLE__</noinclude></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><noinclude>__NOTITLE__</noinclude></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable <includeonly>{{{1|mw-collapsible mw-collapsed}}}</includeonly>" style="width:100%"</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{| class="wikitable <includeonly>{{{1|mw-collapsible mw-collapsed}}}</includeonly>" style="width:100%"</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>! colspan=<del style="font-weight: bold; text-decoration: none;">4 </del>| '''<big>APL built-ins</big>''' [[{{fullurl:Template:APL_built-ins|action=edit}} edit]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>! colspan=<ins style="font-weight: bold; text-decoration: none;">5 </ins>| '''<big>APL built-ins</big>''' [[{{fullurl:Template:APL_built-ins|action=edit}} edit]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="9" style="width:6em;" | [[Primitive function]]s</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>! <ins style="font-weight: bold; text-decoration: none;">rowspan="11 style="width:6em;" | [[Primitive]]s ([[Timeline of APL primitives|Timeline]]) || </ins>rowspan="9" style="width:6em;" | [[Primitive function<ins style="font-weight: bold; text-decoration: none;">|Function</ins>]]s</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="3" style="width:6em;" | [[Scalar function|Scalar]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="3" style="width:6em;" | [[Scalar function|Scalar]]</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l15">Line 15:</td>
<td colspan="2" class="diff-lineno">Line 15:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="5" | [[Mixed function|Non-Scalar]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="5" | [[Mixed function|Non-Scalar]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>! <del style="font-weight: bold; text-decoration: none;">[[</del>Structural <del style="font-weight: bold; text-decoration: none;">function|Structural]]</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>! Structural</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| [[Shape]] ∙ [[Reshape]] ∙ [[Tally]] ∙ [[Depth]] ∙ [[Ravel]] ∙ [[Enlist]] ∙ [[Table]] ∙ [[Catenate]] ∙ [[Reverse]] ∙ [[Rotate]] ∙ [[Transpose]] ∙ [[Raze]] ∙ [[Mix]] ∙ [[Split]] ∙ [[Enclose]] ∙ [[Nest]] ∙ [[Cut (K)]] ∙ [[Pair]] ∙ [[Link]] ∙ [[Partitioned Enclose]] ∙ [[Partition]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| [[Shape]] ∙ [[Reshape]] ∙ [[Tally]] ∙ [[Depth]] ∙ [[Ravel]] ∙ [[Enlist]] ∙ [[Table]] ∙ [[Catenate]] ∙ [[Reverse]] ∙ [[Rotate]] ∙ [[Transpose]] ∙ [[Raze]] ∙ [[Mix]] ∙ [[Split]] ∙ [[Enclose]] ∙ [[Nest]] ∙ [[Cut (K)]] ∙ [[Pair]] ∙ [[Link]] ∙ [[Partitioned Enclose]] ∙ [[Partition]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| [[Match]] ∙ [[Not Match]] ∙ [[Membership]] ∙ [[Find]] ∙ [[Nub Sieve]] ∙ [[Encode]] ∙ [[Decode]] ∙ [[Matrix Inverse]] ∙ [[Matrix Divide]] ∙ [[Format]] ∙ [[Execute]] ∙ [[Materialise]] ∙ [[Range]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| [[Match]] ∙ [[Not Match]] ∙ [[Membership]] ∙ [[Find]] ∙ [[Nub Sieve]] ∙ [[Encode]] ∙ [[Decode]] ∙ [[Matrix Inverse]] ∙ [[Matrix Divide]] ∙ [[Format]] ∙ [[Execute]] ∙ [[Materialise]] ∙ [[Range]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="2" | [[Primitive operator]]s !! Monadic</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>! rowspan="2" | [[Primitive operator<ins style="font-weight: bold; text-decoration: none;">|Operator</ins>]]s !! Monadic</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| colspan="2" | [[Each]] ∙ [[Commute]] ∙ [[Constant]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Reduce]] ∙ [[Windowed Reduce]] ∙ [[Scan]] ∙ [[Outer Product]] ∙ [[Key]] ∙ [[I-Beam]] ∙ [[Spawn]] ∙ [[Function axis]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| colspan="2" | [[Each]] ∙ [[Commute]] ∙ [[Constant]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Reduce]] ∙ [[Windowed Reduce]] ∙ [[Scan]] ∙ [[Outer Product]] ∙ [[Key]] ∙ [[I-Beam]] ∙ [[Spawn]] ∙ [[Function axis]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l34">Line 34:</td>
<td colspan="2" class="diff-lineno">Line 34:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! [[Quad name]]s</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! [[Quad name]]s</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| colspan="<del style="font-weight: bold; text-decoration: none;">3</del>" | [[Index origin]] ∙ [[Comparison tolerance]] ∙ [[Migration level]] ∙ [[Atomic vector]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| colspan="<ins style="font-weight: bold; text-decoration: none;">4</ins>" | [[Index origin]] ∙ [[Comparison tolerance]] ∙ [[Migration level]] ∙ [[Atomic vector]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td></tr>
</table>
Adám Brudzewsky
https://aplwiki.com/index.php?title=Timeline_of_APL_primitives&diff=11331&oldid=11318
Timeline of APL primitives
2024-03-17T02:40:50Z
<p>Swapped glyphs</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 02:40, 17 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(5 intermediate revisions by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l27">Line 27:</td>
<td colspan="2" class="diff-lineno">Line 27:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], close [[<del style="font-weight: bold; text-decoration: none;">Atop</del>]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[<del style="font-weight: bold; text-decoration: none;">Over</del>]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 1981 || [[SHARP APL]] || [[function rank]], close [[<ins style="font-weight: bold; text-decoration: none;">Over</ins>]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[<ins style="font-weight: bold; text-decoration: none;">Atop</ins>]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l51">Line 51:</td>
<td colspan="2" class="diff-lineno">Line 51:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986, [[J]] 1990)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[NARS2000]] || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986, [[J]] 1990)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] <del style="font-weight: bold; text-decoration: none;">pre-2000</del>)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)--></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] <ins style="font-weight: bold; text-decoration: none;">1990</ins>)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)--></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]]) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP APL 1983)</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]] <ins style="font-weight: bold; text-decoration: none;">1994</ins>) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP APL 1983)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"><!-- | 2018 || [[Extended Dyalog APL]] || [[Pair]] ([[Nial]] dyadic 1982, [[I]] 2012)</del></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">|- --></del></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|- --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|- --></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">| 2019 || [[dzaima/APL]] || [[Reverse Compose]] (<syntaxhighlight lang=apl inline>⍛</syntaxhighlight>) ([[I]] 2012, [[Extended Dyalog APL]] 2019) <!-- <br/> [[Pair]] (<syntaxhighlight lang=apl inline>⍮</syntaxhighlight>) ([[Nial]] dyadic 1982, [[I]] 2012) --></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">|-</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP APL (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP APL (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Reverse_Compose&diff=11324&oldid=10904
Reverse Compose
2024-03-17T00:12:44Z
<p>April implemented this (as Before) before Kap actually</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:12, 17 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(One intermediate revision by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Reverse Compose|⍛}} or '''<del style="font-weight: bold; text-decoration: none;">Behind</del>''' is a [[primitive operator]] closely related to [[Beside]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), which appears in [[Extended Dyalog APL]], [[dzaima/APL]], and [[Kap]]. Called [[dyad|dyadically]] with function operands <syntaxhighlight lang=apl inline>f</syntaxhighlight> and <syntaxhighlight lang=apl inline>g</syntaxhighlight>, it uses <syntaxhighlight lang=apl inline>f</syntaxhighlight> [[monad|monadically]] to pre-processes the left argument before applying <syntaxhighlight lang=apl inline>g</syntaxhighlight> between the pre-processed left argument and the given right argument. <syntaxhighlight lang=apl inline>X f⍛g Y</syntaxhighlight> is thus equivalent to <syntaxhighlight lang=apl inline>(f X) g Y</syntaxhighlight>. The operator can be defined as the [[dop]] <syntaxhighlight lang=apl inline>{(⍺⍺ ⍺) ⍵⍵ ⍵}</syntaxhighlight>. This dyadic definition matches the [[hook]] function Before, represented as <code>⊸</code> in [[BQN]].</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Reverse Compose|⍛}} or '''<ins style="font-weight: bold; text-decoration: none;">Before</ins>''' is a [[primitive operator]] closely related to [[Beside]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), which appears in [[Extended Dyalog APL]], [[dzaima/APL]], <ins style="font-weight: bold; text-decoration: none;">[[April]] </ins>and [[Kap]]. Called [[dyad|dyadically]] with function operands <syntaxhighlight lang=apl inline>f</syntaxhighlight> and <syntaxhighlight lang=apl inline>g</syntaxhighlight>, it uses <syntaxhighlight lang=apl inline>f</syntaxhighlight> [[monad|monadically]] to pre-processes the left argument before applying <syntaxhighlight lang=apl inline>g</syntaxhighlight> between the pre-processed left argument and the given right argument. <syntaxhighlight lang=apl inline>X f⍛g Y</syntaxhighlight> is thus equivalent to <syntaxhighlight lang=apl inline>(f X) g Y</syntaxhighlight>. The operator can be defined as the [[dop]] <syntaxhighlight lang=apl inline>{(⍺⍺ ⍺) ⍵⍵ ⍵}</syntaxhighlight>. This dyadic definition matches the [[hook]] function Before, represented as <code>⊸</code> in [[BQN]].</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Unlike Before, the [[monad]]ic case of Reverse Compose has differed across implementations. When introduced by [[Extended Dyalog APL]], <syntaxhighlight lang=apl inline>f⍛g Y</syntaxhighlight> evaluated to <syntaxhighlight lang=apl inline>g Y</syntaxhighlight>, but the later [[Dyalog APL Vision]], and [[Kap]], define it to be <syntaxhighlight lang=apl inline>(f Y) g Y</syntaxhighlight>, matching Before. This later definition might also be written <syntaxhighlight lang=apl inline>f⍛g</syntaxhighlight>{{←→}}<syntaxhighlight lang=apl inline>f⍛g⍨⍨</syntaxhighlight>{{←→}}<syntaxhighlight lang=apl inline>g⍨∘f⍨</syntaxhighlight>. In [[dzaima/APL]] the monadic case is simply an error.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Unlike Before, the [[monad]]ic case of Reverse Compose has differed across implementations. When introduced by [[Extended Dyalog APL]], <syntaxhighlight lang=apl inline>f⍛g Y</syntaxhighlight> evaluated to <syntaxhighlight lang=apl inline>g Y</syntaxhighlight>, but the later [[Dyalog APL Vision]], <ins style="font-weight: bold; text-decoration: none;">as well as [[April]] </ins>and [[Kap]], define it to be <syntaxhighlight lang=apl inline>(f Y) g Y</syntaxhighlight>, matching Before. This later definition might also be written <syntaxhighlight lang=apl inline>f⍛g</syntaxhighlight>{{←→}}<syntaxhighlight lang=apl inline>f⍛g⍨⍨</syntaxhighlight>{{←→}}<syntaxhighlight lang=apl inline>g⍨∘f⍨</syntaxhighlight>. In [[dzaima/APL]] the monadic case is simply an error.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Common usage ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Common usage ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Timeline_of_APL_primitives&diff=11318&oldid=0
Timeline of APL primitives
2024-03-16T22:08:00Z
<p>Created page with "The following table lists APL primitives, primitive extensions, and primitive-like syntax that are implemented across many dialects, or are precursors of such features. Features are ordered by the first APL dialect to implement them, and previous definitions in other array languages or as proposals are indicated in parentheses. Because primitives tend to have multiple names and may even change name within a dialect, common modern names are used rather than the name when..."</p>
<p><b>New page</b></p><div>The following table lists APL primitives, primitive extensions, and primitive-like syntax that are implemented across many dialects, or are precursors of such features. Features are ordered by the first APL dialect to implement them, and previous definitions in other array languages or as proposals are indicated in parentheses. Because primitives tend to have multiple names and may even change name within a dialect, common modern names are used rather than the name when introduced.<br />
<br />
{|class=wikitable<br />
! Year !! Dialect !! Primitives<br />
|-<br />
| 1965 || [[IVSYS/7090]] || [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]<br />
|-<br />
| 1966 || [[APL\360]] || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]<br />
|-<br />
| 1968 || [[APL\360]] || [[Signum]], [[Deal]], [[Pi times]], [[Circular]], [[Nand]], [[Nor]], [[Take]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Drop]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Grade]], [[Rotate First]] (<syntaxhighlight lang=apl inline>⊖</syntaxhighlight>), [[I-Beam]]<br />
|-<br />
| 1970 || [[APL\360]] || overtake with [[Take]]<br />
|-<br />
| 1970 || [[APL\360]] || [[Matrix Inverse]], [[Matrix Divide]], [[Laminate]] (<syntaxhighlight lang=apl inline>,[]</syntaxhighlight>)<br />
|-<br />
| 1973 || [[APL.SV]] || [[Execute]], [[Format]], [[Scan]]<br />
|-<br />
| 1980 || [[SHARP APL]] || [[GCD]]/[[LCM]] extending [[Or]]/[[And]] (proposed [[Eugene McDonnell|McDonnell]] 1975)<br />
|-<br />
| 1980 || [[SHARP APL]] || [[Replicate]] extending [[Compress]] ([[Bob Bernecky|Bernecky]] 1980) <br/> dyadic and high-rank [[Grade]] (proposed Howard Smith 1979)<br />
|-<br />
|rowspan=3| 1981 ||rowspan=3| [[NARS]]<br />
| [[Enclose]], [[Match]], [[Pick]], nested [[Index Generator]], [[stranded assignment]] (proposed [[Jim Brown|Brown]] 1971)<br />
|-<br />
| [[Unique]], [[Union]], [[Intersection]], [[Set Difference]], [[Commute]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>⍢</syntaxhighlight>), [[Power (operator)|Power]] (<syntaxhighlight lang=apl inline>⍣</syntaxhighlight>), [[Windowed Reduction]] ([[Operators and Functions]] 1978)<br />
|-<br />
| [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]<br />
|-<br />
| 1981 || [[SHARP APL]] || [[function rank]], close [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted)<br />
|-<br />
| 1982 || [[SHARP APL]] || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)<br />
|-<br />
| 1983 || [[SHARP APL]] || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)<br />
|-<br />
| 1984 || [[APL2]] || [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>)<br />
|-<br />
| 1987 || [[SHARP APL]] || short left argument for [[Take]], [[Drop]]<br />
|-<br />
| 1989 || [[SHARP APL]] || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)<br />
|-<br />
<!-- | ? || [[SHARP APL]] || [[From]] ([[Rationalized APL]] 1983)<br />
|- --><br />
| 2009 || [[NARS2000]] || [[Function train]]s (proposed [[Ken Iverson|Iverson]] and [[Eugene McDonnell|McDonnell]] 1989; [[J]] 1990)<br />
|-<br />
| 2010 || [[NARS2000]] || [[Tally]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>, changed to <syntaxhighlight lang=apl inline>≢</syntaxhighlight> following Dyalog, 2011) ([[A+]] 1988, [[J]] 1990)<br />
|-<br />
| 2010 || [[NARS2000]] || [[Indices]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[K]] 1996; [[J]] 2003)<br />
|-<br />
| 2011 || [[NARS2000]] || [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>) (SHARP APL (close) 1981)<br />
|-<br />
| 2011 || [[NARS2000]] || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986, [[J]] 1990)<br />
|-<br />
| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] pre-2000)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)--><br />
|-<br />
| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)<br />
|-<br />
| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]]) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP APL 1983)<br />
|-<br />
<!-- | 2018 || [[Extended Dyalog APL]] || [[Pair]] ([[Nial]] dyadic 1982, [[I]] 2012)<br />
|- --><br />
<!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)<br />
|- --><br />
| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP APL (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)<br />
|}<br />
<br />
== See also ==<br />
* [[Timeline of influential array languages]]<br />
* [[Comparison of APL dialects]]<br />
{{APL built-ins}}[[Category:Timelines]][[Category:APL history]]</div>
Marshall
https://aplwiki.com/index.php?title=Replicate&diff=11317&oldid=10817
Replicate
2024-03-16T19:15:24Z
<p><span dir="auto"><span class="autocomment">History: </span> Prefix/suffix link</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:15, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l99">Line 99:</td>
<td colspan="2" class="diff-lineno">Line 99:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Compress was described in [[A Programming Language]], where it was written with the symbols <math>/</math> and <math>/\!\!/</math>. In [[Iverson notation]] compression was particularly important because [[Take]] and [[Drop]] could be performed only by compression with a [[prefix<del style="font-weight: bold; text-decoration: none;">]] </del>or <del style="font-weight: bold; text-decoration: none;">[[</del>suffix]] <del style="font-weight: bold; text-decoration: none;">vector</del>. It was included in [[APL\360]], which changed the doubled slash to a barred slash <syntaxhighlight lang=apl inline>⌿</syntaxhighlight>, and allowed a [[specified axis]] and [[singleton extension]] on both sides (very briefly, singleton extension was allowed only for the right argument<ref>Falkoff, A.D., and K.E. Iverson, "[http://keiapl.org/archive/APL360_UsersMan_Aug1968.pdf APL\360 User's Manual]". IBM, August 1968.</ref>). The APL\360 definition continued to be included in APLs unchanged until 1980.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Compress was described in [[A Programming Language]], where it was written with the symbols <math>/</math> and <math>/\!\!/</math>. In [[Iverson notation]] compression was particularly important because [[Take]] and [[Drop]] could be performed only by compression with a [[<ins style="font-weight: bold; text-decoration: none;">Prefix and suffix vectors|</ins>prefix or suffix <ins style="font-weight: bold; text-decoration: none;">vector</ins>]]. It was included in [[APL\360]], which changed the doubled slash to a barred slash <syntaxhighlight lang=apl inline>⌿</syntaxhighlight>, and allowed a [[specified axis]] and [[singleton extension]] on both sides (very briefly, singleton extension was allowed only for the right argument<ref>Falkoff, A.D., and K.E. Iverson, "[http://keiapl.org/archive/APL360_UsersMan_Aug1968.pdf APL\360 User's Manual]". IBM, August 1968.</ref>). The APL\360 definition continued to be included in APLs unchanged until 1980.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1980, [[Bob Bernecky]] introduced the extension Replicate to [[SHARP APL]]: he allowed an operand (since SHARP's Replicate is an operator) consisting of non-negative integers rather than just [[Boolean]]s to indicate the number of times to copy.<ref>[[Bob Bernecky|Bernecky, Bob]]. SATN-34: Replication. [[IPSA]]. 1980-08-15.</ref><ref>IPSA. [https://www.softwarepreservation.org/projects/apl/Manuals/SharpAPLManualCorrections/view SHARP APL Reference Manual Additions and Corrections, June 1981] p.3: "extended definition adopted 8 February 1980".</ref> This extension was rapidly and widely adopted, starting with [[NARS]] in 1981, and is now a feature of the [[ISO/IEC 13751:2001]] standard.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1980, [[Bob Bernecky]] introduced the extension Replicate to [[SHARP APL]]: he allowed an operand (since SHARP's Replicate is an operator) consisting of non-negative integers rather than just [[Boolean]]s to indicate the number of times to copy.<ref>[[Bob Bernecky|Bernecky, Bob]]. SATN-34: Replication. [[IPSA]]. 1980-08-15.</ref><ref>IPSA. [https://www.softwarepreservation.org/projects/apl/Manuals/SharpAPLManualCorrections/view SHARP APL Reference Manual Additions and Corrections, June 1981] p.3: "extended definition adopted 8 February 1980".</ref> This extension was rapidly and widely adopted, starting with [[NARS]] in 1981, and is now a feature of the [[ISO/IEC 13751:2001]] standard.</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Atop_(operator)&diff=11316&oldid=9352
Atop (operator)
2024-03-16T19:05:44Z
<p><span dir="auto"><span class="autocomment">History</span></span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:05, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l28">Line 28:</td>
<td colspan="2" class="diff-lineno">Line 28:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Atop was defined as subordinate to [[Over]] in [[Ken Iverson]]'s 1978 paper [[Operators and Functions]]: that is, the derived function <syntaxhighlight lang=apl inline>f¨g</syntaxhighlight> works as an Atop if <syntaxhighlight lang=apl inline>f</syntaxhighlight> is strictly monadic or (in the dyadic case) <syntaxhighlight lang=apl inline>g</syntaxhighlight> is strictly dyadic<del style="font-weight: bold; text-decoration: none;">. He </del>called <del style="font-weight: bold; text-decoration: none;">it </del>Composition<del style="font-weight: bold; text-decoration: none;">, as there was no [[Atop operator]]</del>. It was added to [[SHARP APL]] as a [[close composition]] with glyph <syntaxhighlight lang=apl inline>⍥</syntaxhighlight> and name "upon" (initially "over"), with a limited implementation in 1981<ref>[https://www.jsoftware.com/papers/satn41.htm "Composition and Enclosure"]. SATN-41, 1981-06-20.</ref> followed by a full implementation in 1983 with the introduction of [[function rank]].<ref>[https://www.jsoftware.com/papers/satn45.htm "Language Extensions of May 1983"]. SATN-45, 1983-05-02.</ref> The name "Atop" was introduced by [[J]] (which uses "At" for its non-close form). The glyph <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> was chosen for [[Dyalog APL 18.0]], shared with the [[Rank operator]].</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Atop was defined as subordinate to [[Over]] in [[Ken Iverson]]'s 1978 paper [[Operators and Functions]]: that is, the derived function <syntaxhighlight lang=apl inline>f¨g</syntaxhighlight> works as an Atop if <syntaxhighlight lang=apl inline>f</syntaxhighlight> is strictly monadic or (in the dyadic case) <syntaxhighlight lang=apl inline>g</syntaxhighlight> is strictly dyadic <ins style="font-weight: bold; text-decoration: none;">(the combined operator <syntaxhighlight lang=apl inline>¨</syntaxhighlight> was </ins>called Composition<ins style="font-weight: bold; text-decoration: none;">)</ins>. It was added to [[SHARP APL]] as a [[close composition]] with glyph <syntaxhighlight lang=apl inline>⍥</syntaxhighlight> and name "upon" (initially "over"), with a limited implementation in 1981<ref>[https://www.jsoftware.com/papers/satn41.htm "Composition and Enclosure"]. SATN-41, 1981-06-20.</ref> followed by a full implementation in 1983 with the introduction of [[function rank]].<ref>[https://www.jsoftware.com/papers/satn45.htm "Language Extensions of May 1983"]. SATN-45, 1983-05-02.</ref> The name "Atop" was introduced by [[J]] (which uses "At" for its non-close form). The glyph <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> was chosen for [[Dyalog APL 18.0]], shared with the [[Rank operator]].</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Commute&diff=11315&oldid=9407
Commute
2024-03-16T16:56:57Z
<p>Definition in SHARP and inclusion in Extended APL standard</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:56, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Commute|⍨}} is a [[monadic operator]] that takes a [[dyadic function]] as operand and modifies how the argument(s) of its derived functions are used. If the derived function is used monadically, the argument is also used as left argument. This usage is also known as '''Self''' or, more informally, '''Selfie'''. If the derived function is used dyadically, the arguments are swapped. This usage is also known as '''Swap'''. The [[glyph]] is also used for [[Constant]].</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Commute|⍨}}<ins style="font-weight: bold; text-decoration: none;">, or <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> in [[SHARP APL]], </ins>is a [[monadic operator]] that takes a [[dyadic function]] as operand and modifies how the argument(s) of its derived functions are used. If the derived function is used monadically, the argument is also used as left argument. This usage is also known as '''Self''' or, more informally, '''Selfie'''. If the derived function is used dyadically, the arguments are swapped. This usage is also known as '''Swap'''. The [[glyph]] is also used for [[Constant]].</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Examples ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l28">Line 28:</td>
<td colspan="2" class="diff-lineno">Line 28:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== History ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The Commute operator was defined in [[Operators and Functions]] in 1978, and taken up by [[NARS]] as a result. [[Dyalog]], influenced by NARS, included the operator early on. <del style="font-weight: bold; text-decoration: none;">While it didn't appear in </del>[[SHARP APL]], it was included in [[J]] as "Reflex/Passive" (<syntaxhighlight lang=j inline>~</syntaxhighlight>).</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The Commute operator was defined <ins style="font-weight: bold; text-decoration: none;">with glyph <syntaxhighlight lang=apl inline>⍨</syntaxhighlight> </ins>in [[Operators and Functions]] in 1978, and taken up by [[NARS]] as a result. [[Dyalog]], influenced by NARS, included the operator early on. [[SHARP APL]] <ins style="font-weight: bold; text-decoration: none;">later added the operator with glyph <syntaxhighlight lang=apl inline>⊂</syntaxhighlight></ins>, <ins style="font-weight: bold; text-decoration: none;">and </ins>it was included in [[J]] as "Reflex/Passive" (<syntaxhighlight lang=j inline>~</syntaxhighlight>)<ins style="font-weight: bold; text-decoration: none;">. The [[ISO/IEC 13751:2001]] standard included the operator as defined in NARS, although it was unsupported by mainstream dialects such as [[APLX]] and [[APL+Win]] at the time,<ref>F.H.D. van Batenburg. [http://archive.vector.org.uk/art10000930 Conformity of APL Implementations to the ISO APL Standard]. [[Vector journal]] Volume 21, No.3. 2005-05.</ref> and remains unsupported by [[APL2]]</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l41">Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/swap.html BQN]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/swap.html BQN]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive operators]][[Category:Composition operators]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Nub_Sieve&diff=11313&oldid=9413
Nub Sieve
2024-03-16T16:27:13Z
<p><span dir="auto"><span class="autocomment">History: </span> SHARP implementation date</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:27, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l91">Line 91:</td>
<td colspan="2" class="diff-lineno">Line 91:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In [[A Programming Language]], the ''forward set selector'' <math>\sigma/\mathbf{v}</math> is a special notation indicating the nub sieve of <math>\mathbf{v}</math>, so that unique elements are found with a [[Compress]]ion <math>(\sigma/\mathbf{v})/\mathbf{v}</math>.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In [[A Programming Language]], the ''forward set selector'' <math>\sigma/\mathbf{v}</math> is a special notation indicating the nub sieve of <math>\mathbf{v}</math>, so that unique elements are found with a [[Compress]]ion <math>(\sigma/\mathbf{v})/\mathbf{v}</math>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The function Nubsieve (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>) first appeared in [[A Dictionary of APL]] in 1987, and was <del style="font-weight: bold; text-decoration: none;">eventually </del>added to [[SHARP APL]]. <del style="font-weight: bold; text-decoration: none;">It appears </del>[https://<del style="font-weight: bold; text-decoration: none;">code</del>.<del style="font-weight: bold; text-decoration: none;">jsoftware.com</del>/<del style="font-weight: bold; text-decoration: none;">wiki</del>/<del style="font-weight: bold; text-decoration: none;">Vocabulary</del>/<del style="font-weight: bold; text-decoration: none;">tildeco </del>in J] as <syntaxhighlight lang=j inline>~:</syntaxhighlight> or Nub Sieve. It is also included in [[Dyalog APL 18.0]], released June 2020.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The function Nubsieve (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>) first appeared in [[A Dictionary of APL]] in 1987, and was added to [[SHARP APL<ins style="font-weight: bold; text-decoration: none;">]] in 1989.<ref>[[IPSA</ins>]]. [https://<ins style="font-weight: bold; text-decoration: none;">archive</ins>.<ins style="font-weight: bold; text-decoration: none;">org</ins>/<ins style="font-weight: bold; text-decoration: none;">details</ins>/<ins style="font-weight: bold; text-decoration: none;">sharp-apl-release-20.0-guide-for-apl-programmers "SHARP APL Release 20.0: Guide for APL Programmers"].<</ins>/<ins style="font-weight: bold; text-decoration: none;">ref> It appears </ins>in <ins style="font-weight: bold; text-decoration: none;">[[</ins>J<ins style="font-weight: bold; text-decoration: none;">]</ins>] as <syntaxhighlight lang=j inline>~:</syntaxhighlight> or Nub Sieve. It is also included in [[Dyalog APL 18.0]], released June 2020.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l101">Line 101:</td>
<td colspan="2" class="diff-lineno">Line 101:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/selfcmp.html#mark-firsts BQN] (as <code>∊</code>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/selfcmp.html#mark-firsts BQN] (as <code>∊</code>)</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]][[Category:Set functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]][[Category:Set functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Grade&diff=11312&oldid=10964
Grade
2024-03-16T16:23:29Z
<p><span dir="auto"><span class="autocomment">History: </span> Clarify</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 16:23, 16 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l107">Line 107:</td>
<td colspan="2" class="diff-lineno">Line 107:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Grade up and down were defined with the standard glyphs <syntaxhighlight lang=apl inline>⍋⍒</syntaxhighlight> and [[index origin]]-dependent definition in [[APL\360]]. By 1968 it had been defined to grade along a particular [[function axis|axis]], defaulting to the last;<ref>[[IBM]]. [http://www.softwarepreservation.org/projects/apl/Manuals/APL360CONTRIBUTEDPROGRAMLIBRARY/view Contributed Program Library: APL\360]. 1968.</ref> however, this extension has often not been maintained in later APLs.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Grade up and down were defined with the standard glyphs <syntaxhighlight lang=apl inline>⍋⍒</syntaxhighlight> and [[index origin]]-dependent definition in [[APL\360]]. By 1968 it had been defined to grade along a particular [[function axis|axis]], defaulting to the last;<ref>[[IBM]]. [http://www.softwarepreservation.org/projects/apl/Manuals/APL360CONTRIBUTEDPROGRAMLIBRARY/view Contributed Program Library: APL\360]. 1968.</ref> however, this extension has often not been maintained in later APLs.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In 1980 [[SHARP APL]] extended Grade to sort the [[major cell]]s of its argument, and introduced the dyadic Grade functions,<ref>Peter Wooster. "Extended Upgrade and Downgrade". SATN-35. 1980-09-15.</ref> following a suggestion by Howard Smith of [[IBM]] motivated by string sorting.<ref>Howard J. Smith. [https://dl.acm.org/doi/10.1145/800136.804449 Sorting - a new/old problem] at [[APL79]].</ref> While sorting cells is consistent with [[leading axis theory]], it predates the beginning of this model's development in 1982. The extension to monadic Grade is incompatible with APL\360's definition of grading along an axis. Both extensions were widely adopted at the time, for example in the first versions of [[Dyalog APL]].<ref>Stephen Taylor. [http://archive.vector.org.uk/art10013790 "How we got here"]. [[Vector journal]] Volume 23 special supplement "Dyalog at 25". 2008-09.</ref> Newer dialects such as [[Kap]] often don't implement dyadic Grade (which was also left out of [[J]] in favor of [[Sort by]]).</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In 1980 [[SHARP APL]] extended Grade to sort the [[major cell]]s of its argument, and introduced the dyadic Grade functions,<ref>Peter Wooster. "Extended Upgrade and Downgrade". SATN-35. 1980-09-15.</ref> following a suggestion by Howard Smith of [[IBM]] motivated by string sorting.<ref>Howard J. Smith. [https://dl.acm.org/doi/10.1145/800136.804449 Sorting - a new/old problem] at [[APL79]].</ref> While sorting cells is consistent with [[leading axis theory]], it predates the beginning of this model's development in 1982. The extension to monadic Grade is incompatible with APL\360's definition of grading along an axis. Both <ins style="font-weight: bold; text-decoration: none;">SHARP </ins>extensions were widely adopted at the time, for example in the first versions of [[Dyalog APL]].<ref>Stephen Taylor. [http://archive.vector.org.uk/art10013790 "How we got here"]. [[Vector journal]] Volume 23 special supplement "Dyalog at 25". 2008-09.</ref> Newer dialects such as [[Kap]] often don't implement dyadic Grade (which was also left out of [[J]] in favor of [[Sort by]]).</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== External links ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Major_cell&diff=11287&oldid=9267
Major cell
2024-03-10T23:27:40Z
<p>Text replacement - "High-rank set functions" to "Major cell search"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:27, 10 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>└──────────┴─────────┴───────┘</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>└──────────┴─────────┴───────┘</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div></syntaxhighlight></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Given another array <syntaxhighlight lang=apl inline>B</syntaxhighlight> we can search for cells of <syntaxhighlight lang=apl inline>B</syntaxhighlight> which [[match]] major cells of <syntaxhighlight lang=apl inline>B</syntaxhighlight>. [[<del style="font-weight: bold; text-decoration: none;">High-rank set functions</del>|High-rank]] [[Index-of]] always searches for right argument cells whose rank matches the rank of a left argument major cell: if the right argument is a [[vector]] and not a [[matrix]] then it searches for the entire vector rather than its major cells (which are [[scalar]]s).</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Given another array <syntaxhighlight lang=apl inline>B</syntaxhighlight> we can search for cells of <syntaxhighlight lang=apl inline>B</syntaxhighlight> which [[match]] major cells of <syntaxhighlight lang=apl inline>B</syntaxhighlight>. [[<ins style="font-weight: bold; text-decoration: none;">Major cell search</ins>|High-rank]] [[Index-of]] always searches for right argument cells whose rank matches the rank of a left argument major cell: if the right argument is a [[vector]] and not a [[matrix]] then it searches for the entire vector rather than its major cells (which are [[scalar]]s).</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang=apl></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><syntaxhighlight lang=apl></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> ⎕←B ← ↑ 4,/⍳6</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> ⎕←B ← ↑ 4,/⍳6</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Interval_Index&diff=11285&oldid=9530
Interval Index
2024-03-10T23:27:34Z
<p>Text replacement - "High-rank set functions" to "Major cell search"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 23:27, 10 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l61">Line 61:</td>
<td colspan="2" class="diff-lineno">Line 61:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1987 [[Roger Hui]] presented the function ''classify'', with a definition very similar to that later introduced in [[Dyalog APL]], but restricted to [[vector]]s.<ref>[[Roger Hui|Hui, Roger]], [https://www.jsoftware.com/papers/from.htm Some Uses of { and }], §1.2. [[APL87]]. APL Quote Quad, Volume 17, Number 4. 1987-05.</ref></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In 1987 [[Roger Hui]] presented the function ''classify'', with a definition very similar to that later introduced in [[Dyalog APL]], but restricted to [[vector]]s.<ref>[[Roger Hui|Hui, Roger]], [https://www.jsoftware.com/papers/from.htm Some Uses of { and }], §1.2. [[APL87]]. APL Quote Quad, Volume 17, Number 4. 1987-05.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[A+]] was the first APL to feature Interval Index as a primitive. Called Bins (<syntaxhighlight lang=apl inline>⍋</syntaxhighlight>), it assumed the left argument to be sorted ascending with no duplicates and returned the number of cells strictly less than the target cell, giving right-closed indices. A+ used the same [[<del style="font-weight: bold; text-decoration: none;">High-rank set functions</del>|cell rank convention]] as Find ([[Index Of]]) for Interval Index, a choice that was also adopted in later implementations of the primitive.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[A+]] was the first APL to feature Interval Index as a primitive. Called Bins (<syntaxhighlight lang=apl inline>⍋</syntaxhighlight>), it assumed the left argument to be sorted ascending with no duplicates and returned the number of cells strictly less than the target cell, giving right-closed indices. A+ used the same [[<ins style="font-weight: bold; text-decoration: none;">Major cell search</ins>|cell rank convention]] as Find ([[Index Of]]) for Interval Index, a choice that was also adopted in later implementations of the primitive.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Interval Index (<syntaxhighlight lang=j inline>I.</syntaxhighlight>) in [[J]] was implemented in release 6.01, available in 2006.<ref>Jsoftware. [https://www.jsoftware.com/docs/archive/release/binsearch.htm I. ''Interval Index'' Implemented]. 2005.</ref> The choice of <syntaxhighlight lang=j inline>I.</syntaxhighlight> for a symbol introduced the pairing of Interval Index with the monadic function [[Indices]]. In release 6.02 (2008), [[Index Of]] was extended to allow non-matching cell shapes, but Interval Index was not similarly extended.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Interval Index (<syntaxhighlight lang=j inline>I.</syntaxhighlight>) in [[J]] was implemented in release 6.01, available in 2006.<ref>Jsoftware. [https://www.jsoftware.com/docs/archive/release/binsearch.htm I. ''Interval Index'' Implemented]. 2005.</ref> The choice of <syntaxhighlight lang=j inline>I.</syntaxhighlight> for a symbol introduced the pairing of Interval Index with the monadic function [[Indices]]. In release 6.02 (2008), [[Index Of]] was extended to allow non-matching cell shapes, but Interval Index was not similarly extended.</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Inner_Product&diff=11259&oldid=10463
Inner Product
2024-03-10T00:19:51Z
<p><span dir="auto"><span class="autocomment">Differences between dialects: </span> ISO/IEC 13751:2001 link</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:19, 10 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l141">Line 141:</td>
<td colspan="2" class="diff-lineno">Line 141:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Differences between dialects ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Differences between dialects ==</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Implementations differ on the exact behaviour of inner product when the right operand is not a [[scalar function]]. Page 121 of the ISO/IEC 13751:2001<del style="font-weight: bold; text-decoration: none;">(E) [[standard</del>]] specifies that <syntaxhighlight lang=apl inline>X f.g Y</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl>f/¨ (⊂[⍴⍴x]x)∘.g ⊂[1]y</syntaxhighlight> (assuming [[index origin]] 1). This is indeed what [[APL2]], [[APLX]], [[APL+Win]], and [[ngn/apl]] follow, while [[Dyalog APL]], [[NARS2000]] and [[GNU APL]] differ as described by [[Roger Hui]]:<ref>[[Roger Hui]]. ''inner product''. Internal Dyalog email. 24 July 2020.</ref></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Implementations differ on the exact behaviour of inner product when the right operand is not a [[scalar function]]. Page 121 of the <ins style="font-weight: bold; text-decoration: none;">[[</ins>ISO/IEC 13751:2001]] <ins style="font-weight: bold; text-decoration: none;">standard </ins>specifies that <syntaxhighlight lang=apl inline>X f.g Y</syntaxhighlight> is equivalent to <syntaxhighlight lang=apl>f/¨ (⊂[⍴⍴x]x)∘.g ⊂[1]y</syntaxhighlight> (assuming [[index origin]] 1). This is indeed what [[APL2]], [[APLX]], [[APL+Win]], and [[ngn/apl]] follow, while [[Dyalog APL]], [[NARS2000]] and [[GNU APL]] differ as described by [[Roger Hui]]:<ref>[[Roger Hui]]. ''inner product''. Internal Dyalog email. 24 July 2020.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><blockquote></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><blockquote></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following dop models inner product in Dyalog APL, with caveats. If you find a case where <syntaxhighlight lang=apl inline>f.g</syntaxhighlight> differs from <syntaxhighlight lang=apl inline>f IP g</syntaxhighlight>, not covered by the caveats, I'd be interested.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The following dop models inner product in Dyalog APL, with caveats. If you find a case where <syntaxhighlight lang=apl inline>f.g</syntaxhighlight> differs from <syntaxhighlight lang=apl inline>f IP g</syntaxhighlight>, not covered by the caveats, I'd be interested.</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Direct_definition_(operator)&diff=11236&oldid=11231
Direct definition (operator)
2024-03-08T02:32:26Z
<p>Rework to include Iverson's versions of the operator</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 02:32, 8 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:''The [[Del]] glyph <code>∇</code> is more commonly used for [[dfn]] recursion or to indicate a [[defined function]].''</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>:''The [[Del]] glyph <code>∇</code> is more commonly used for [[dfn]] recursion or to indicate a [[defined function]].''</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Direct definition|∇}}, <del style="font-weight: bold; text-decoration: none;">in [[NARS]]</del>, is a [[primitive]] [[dyadic operator]] that defines an [[anonymous function]] based on source [[string]]s. Its left operand is the source for the function's [[dyadic]] case and the right is the source for the [[monadic]] case. <del style="font-weight: bold; text-decoration: none;">One </del>of <del style="font-weight: bold; text-decoration: none;">these operands may be replaced with </del>a [[<del style="font-weight: bold; text-decoration: none;">Jot</del>]] <del style="font-weight: bold; text-decoration: none;">(using this operator as an operand as </del>with [[<del style="font-weight: bold; text-decoration: none;">Outer Product</del>]]<del style="font-weight: bold; text-decoration: none;">) </del>to indicate <del style="font-weight: bold; text-decoration: none;">an undefined case and create a strictly monadic or dyadic function</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Direct definition|∇}}, <ins style="font-weight: bold; text-decoration: none;">or '''function definition'''</ins>, is a [[primitive]] [[dyadic operator]] that defines an [[anonymous function]] based on source [[string]]s. Its left operand is the source for the function's [[dyadic]] case and the right is the source for the [[monadic]] case. <ins style="font-weight: bold; text-decoration: none;">It appears in [[NARS]] and several publications by [[Ken Iverson]]: an [[APL81]] paper with Peter Wooster,<ref>[[Ken Iverson]] and Peter Wooster. [https://dl.acm.org/doi/abs/10.1145/390007.805349 A function definition operator] at [[APL81]].</ref> [[Rationalized APL]], and [[A Dictionary of APL]]. Definitions vary, but in all cases, the format </ins>of a <ins style="font-weight: bold; text-decoration: none;">source string is similar to that used in the informal </ins>[[<ins style="font-weight: bold; text-decoration: none;">Direct definition (notation)|direct definition notation</ins>]]<ins style="font-weight: bold; text-decoration: none;">, </ins>with <ins style="font-weight: bold; text-decoration: none;"><syntaxhighlight lang=apl inline>⍺</syntaxhighlight> and <syntaxhighlight lang=apl inline>⍵</syntaxhighlight> for the left and right </ins>[[<ins style="font-weight: bold; text-decoration: none;">argument</ins>]]<ins style="font-weight: bold; text-decoration: none;">s. Another token, <syntaxhighlight lang=apl inline>_</syntaxhighlight> in NARS and <syntaxhighlight lang=apl inline>∆</syntaxhighlight> in Iverson's papers, is added </ins>to indicate <ins style="font-weight: bold; text-decoration: none;">[[recursion]]. Multiple expressions can be used by separating with <syntaxhighlight lang=apl inline>⋄</syntaxhighlight>. Various forms of control flow have been defined</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">The format of a source string is similar to that used in </del>[[<del style="font-weight: bold; text-decoration: none;">Direct definition (notation)|Iverson's direct definition</del>]], with <del style="font-weight: bold; text-decoration: none;">several small differences. Multiple expressions can be used if separated by <syntaxhighlight lang=apl inline>⋄</syntaxhighlight>. <syntaxhighlight lang=apl inline>⍺</syntaxhighlight> and <syntaxhighlight lang=apl inline>⍵</syntaxhighlight> indicate the left and right </del>[[<del style="font-weight: bold; text-decoration: none;">argument</del>]]<del style="font-weight: bold; text-decoration: none;">s, and <syntaxhighlight lang=apl inline>_</syntaxhighlight> is added to indicate </del>[[<del style="font-weight: bold; text-decoration: none;">recursion</del>]]. Conditions are <del style="font-weight: bold; text-decoration: none;">still </del>indicated with colons <syntaxhighlight lang=apl inline>:</syntaxhighlight>, but the mechanism is extended: rather than a boolean condition placed between false and true cases, it's placed first, and returns a scalar or vector of natural numbers. Each number indicates one of the following groups of statements (separated by further <syntaxhighlight lang=apl inline>:</syntaxhighlight>s and numbered starting at 0), and these groups will then be evaluated, with the result of the last evaluated expression returned from the function as a whole.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In </ins>[[<ins style="font-weight: bold; text-decoration: none;">NARS</ins>]], <ins style="font-weight: bold; text-decoration: none;">operands are single strings, and one of them may be replaced </ins>with <ins style="font-weight: bold; text-decoration: none;">a </ins>[[<ins style="font-weight: bold; text-decoration: none;">Jot</ins>]] <ins style="font-weight: bold; text-decoration: none;">(using this operator as an operand as with </ins>[[<ins style="font-weight: bold; text-decoration: none;">Outer Product</ins>]]<ins style="font-weight: bold; text-decoration: none;">) to indicate an undefined case and create a strictly monadic or dyadic function</ins>. Conditions are indicated with colons <syntaxhighlight lang=apl inline>:</syntaxhighlight> <ins style="font-weight: bold; text-decoration: none;">as in direct definition notation</ins>, but the mechanism is extended: rather than a boolean condition placed between false and true cases, it's placed first, and returns a scalar or vector of natural numbers. Each number indicates one of the following groups of statements (separated by further <syntaxhighlight lang=apl inline>:</syntaxhighlight>s and numbered starting at 0), and these groups will then be evaluated, with the result of the last evaluated expression returned from the function as a whole.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>== <del style="font-weight: bold; text-decoration: none;">External links </del>==</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>== <ins style="font-weight: bold; text-decoration: none;">Documentation </ins>==</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.sudleyplace.com/APL/Nested%20Arrays%20System.pdf#page=58 <del style="font-weight: bold; text-decoration: none;">Documentation</del>]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* [https://www.sudleyplace.com/APL/Nested%20Arrays%20System.pdf#page=58 <ins style="font-weight: bold; text-decoration: none;">NARS</ins>]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">== References ==</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><references/></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive operators]][[Category:Defining functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive operators]][[Category:Defining functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Template:APL_built-ins&diff=11221&oldid=11203
Template:APL built-ins
2024-03-08T00:28:07Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 00:28, 8 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l31">Line 31:</td>
<td colspan="2" class="diff-lineno">Line 31:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Dyadic</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Dyadic</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| colspan="2" | [[Bind]] ∙ [[Function composition|Composition]]s ([[Compose]], [[Reverse Compose]], [[Beside]], [[Withe]], [[Atop (operator)|Atop]], [[Over]]) ∙ [[Inner Product]] ∙ [[Determinant]] ∙ [[Power (operator)|Power]] ∙ [[At]] ∙ [[Under]] ∙ [[Rank (operator)|Rank]] ∙ [[Depth (operator)|Depth]] ∙ [[Variant]] ∙ [[Stencil]] ∙ [[Cut]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| colspan="2" | [[Bind]] ∙ [[Function composition|Composition]]s ([[Compose]], [[Reverse Compose]], [[Beside]], [[Withe]], [[Atop (operator)|Atop]], [[Over]]) ∙ [[Inner Product]] ∙ [[Determinant]] ∙ [[Power (operator)|Power]] ∙ [[At]] ∙ [[Under]] ∙ [[Rank (operator)|Rank]] ∙ [[Depth (operator)|Depth]] ∙ [[Variant]] ∙ [[Stencil]] ∙ [[Cut<ins style="font-weight: bold; text-decoration: none;">]] ∙ [[Direct definition (NARS)</ins>]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! [[Quad name]]s</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! [[Quad name]]s</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| colspan="3" | [[Index origin]] ∙ [[Comparison tolerance]] ∙ [[Migration level]] ∙ [[Atomic vector]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>| colspan="3" | [[Index origin]] ∙ [[Comparison tolerance]] ∙ [[Migration level]] ∙ [[Atomic vector]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|}</div></td></tr>
</table>
Adám Brudzewsky
https://aplwiki.com/index.php?title=Pair&diff=11212&oldid=10247
Pair
2024-03-06T17:16:56Z
<p><span dir="auto"><span class="autocomment">History: </span> Nial</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:16, 6 March 2024</td>
</tr><tr><td colspan="4" class="diff-multi" lang="en-GB">(3 intermediate revisions by the same user not shown)</td></tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Pair|⍮}} or '''Juxtapose''' is a [[primitive function]] <del style="font-weight: bold; text-decoration: none;">equivalent </del>to the [[dfn]] <syntaxhighlight lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</syntaxhighlight> <del style="font-weight: bold; text-decoration: none;">which aids in constructing nested arrays during [[tacit programming]] where [[stranding]] by juxtaposition is not available. It is also equivalent to </del>the [[catenate|catenation]] of the [[enclose]]d arguments, written <syntaxhighlight lang=apl inline>,⍥⊂</syntaxhighlight> using [[Over]]<ref>[https://www.jsoftware.com/papers/satn41.htm "Composition and Enclosure"] §</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Pair|⍮}} or '''Juxtapose''' is a [[primitive<ins style="font-weight: bold; text-decoration: none;">]] [[ambivalent </ins>function]] <ins style="font-weight: bold; text-decoration: none;">that constructs a [[vector]] of its [[argument]]s, present in [[Extended Dyalog APL]], [[dzaima/APL]], and [[BQN]] (as <code>⋈</code>). The [[monadic]] case is referred </ins>to <ins style="font-weight: bold; text-decoration: none;">as '''Half Pair''' in Extended Dyalog APL, and is similar to [[Enclose]] except that it gives a result of [[rank]] 1 rather than 0. This case is called '''Enlist''' in BQN, as well as [[K]], where it is the monadic case of <code>,</code> (K has no dyadic Pair primitive). Dyadic Pair is similar to the [[Link]] primitive in [[SHARP APL]] and [[J]], but Link has an asymmetric definition that adds its left argument to a vector right argument rather than creating a new vector.</ins></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Composition Operators. SATN-41, 1981-06-20.</ref><del style="font-weight: bold; text-decoration: none;">. It was introduced </del>in [[<del style="font-weight: bold; text-decoration: none;">Extended Dyalog APL</del>]], <del style="font-weight: bold; text-decoration: none;">and then adopted into </del>[[<del style="font-weight: bold; text-decoration: none;">dzaima/APL</del>]]<del style="font-weight: bold; text-decoration: none;">. It was added to [[BQN]] with the glyph <code>⋈</code> in 2021</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Pair can be implemented as </ins>the [[dfn]] <syntaxhighlight lang=apl inline>{⍺←,⊂ ⋄ ⍺ ⍵}</syntaxhighlight><ins style="font-weight: bold; text-decoration: none;">, or </ins>the [[catenate|catenation]] of the [[enclose]]d arguments, written <syntaxhighlight lang=apl inline>,⍥⊂</syntaxhighlight> using [[Over]]<ins style="font-weight: bold; text-decoration: none;">.</ins><ref>[https://www.jsoftware.com/papers/satn41.htm "Composition and Enclosure"] § Composition Operators. SATN-41, 1981-06-20.</ref> <ins style="font-weight: bold; text-decoration: none;">Pair aids in constructing nested arrays </ins>in [[<ins style="font-weight: bold; text-decoration: none;">tacit programming</ins>]], <ins style="font-weight: bold; text-decoration: none;">where </ins>[[<ins style="font-weight: bold; text-decoration: none;">stranding</ins>]] <ins style="font-weight: bold; text-decoration: none;">by juxtaposition is not available</ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Common usage ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Common usage ==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l24">Line 24:</td>
<td colspan="2" class="diff-lineno">Line 25:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Works in|[[dzaima/APL]], [[Extended Dyalog APL]]}}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>== <del style="font-weight: bold; text-decoration: none;">External links </del>==</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>== <ins style="font-weight: bold; text-decoration: none;">History </ins>==</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">By 1982, [[Nial]] had defined four infix functions to join two arrays, enclosing any combination of them.<ref>Fl. Schmidt and M. A. Jenkins. [https://doi.org/10.1145/800071.802258 Array diagrams and the Nial approach] at [[APL82]].</ref> <code>link</code> encloses neither argument, giving [[Catenate]], while <code>pair</code> encloses both, giving dyadic Pair. <code>hitch</code> encloses only the left to give [[Link]], and <code>append</code> encloses the right.</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In APL, [[Link]] precedes Pair significantly, as it was defined in [[SHARP APL]] in 1983,<ref>[https://www.jsoftware.com/papers/satn45.htm "Language Extensions of May 1983"]. SATN-45, 1983-05-02.</ref> and included in the initial version of [[J]] in 1990.</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In array languages based on the [[list model]], Pair also covers the functionality of [[Promote]] and [[Laminate]]. [[K]], released in the 1990s, defines monadic <code>,</code> as enlist, but dyadic <code>,</code> as [[catenate]]. Ambivalent Pair appears in [[I]] as <code>;</code> since 2012; no name is given in the documentation, but the implementation uses "itemize" (the same name as [[J]]'s Promote) and "cross".</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>=== Documentation <del style="font-weight: bold; text-decoration: none;">=</del>==</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Pair was defined as <syntaxhighlight lang</ins>=<ins style="font-weight: bold; text-decoration: none;">apl inline>⍮</syntaxhighlight> in [[Extended Dyalog APL]] in 2018, and then adopted into [[dzaima/APL]]. It was added to [[BQN]] with the glyph <code>⋈</code> in 2021.</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>== Documentation ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/pair.html BQN] (as <code>⋈</code>)</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>* [https://mlochbaum.github.io/BQN/doc/pair.html BQN] (as <code>⋈</code>)</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">== See also ==</del></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">* [[Link]]</del></div></td><td colspan="2" class="diff-side-added"></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== References ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== References ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references /></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references /></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{APL built-ins}}[[Category:Primitive functions]]</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Enlist&diff=11204&oldid=10635
Enlist
2024-03-06T15:32:57Z
<p>Disambiguate use in K and BQN</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:32, 6 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">:''For the K and BQN function that creates a one-element list containing its argument, see [[Pair]].''</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Enlist|∊}} is a [[primitive function]] which returns a [[simple]] [[vector]] of all simple [[scalar]] values in a possibly [[nested array]]. Enlist differs from [[Ravel]] in that Enlist flattens over all layers of nesting, while Ravel flattens only the outermost layer. Enlist shares its [[glyph]] <syntaxhighlight lang=apl inline>∊</syntaxhighlight> with the dyadic function [[Membership]].</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Built-in|Enlist|∊}} is a [[primitive function]] which returns a [[simple]] [[vector]] of all simple [[scalar]] values in a possibly [[nested array]]. Enlist differs from [[Ravel]] in that Enlist flattens over all layers of nesting, while Ravel flattens only the outermost layer. Enlist shares its [[glyph]] <syntaxhighlight lang=apl inline>∊</syntaxhighlight> with the dyadic function [[Membership]].</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Support ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Support ==</div></td></tr>
</table>
Marshall
https://aplwiki.com/index.php?title=Template:APL_built-ins&diff=11203&oldid=11187
Template:APL built-ins
2024-03-06T15:26:33Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:26, 6 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selection</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selection</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| [[First]] ∙ [[Pick]] ∙ [[Take]] ∙ [[Drop]] ∙ [[Unique]] ∙ [[Identity]] ∙ [[Stop]] ∙ [[Select]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Set function]]s ([[Intersection]] ∙ [[Union]] ∙ [[Without]]) ∙ [[Bracket indexing]] ∙ [[Index (function)|Index]] ∙ [[Cartesian Product]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| [[First]] ∙ [[Pick]] ∙ [[Take]] ∙ [[Drop]] ∙ [[Unique]] ∙ [[Identity]] ∙ [[Stop]] ∙ [[Select]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Set function]]s ([[Intersection]] ∙ [[Union]] ∙ [[Without]]) ∙ [[Bracket indexing]] ∙ [[Index (function)|Index]] ∙ [[Cartesian Product<ins style="font-weight: bold; text-decoration: none;">]] ∙ [[Sort</ins>]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selector</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selector</div></td></tr>
</table>
Adám Brudzewsky
https://aplwiki.com/index.php?title=Sort&diff=11191&oldid=0
Sort
2024-03-06T15:06:38Z
<p>Created page with "'''Sort Up''' and '''Sort Down''' are <a href="/wiki/Monadic_function" title="Monadic function">monadic functions</a> that order the <a href="/wiki/Major_cell" title="Major cell">major cells</a> of an array in ascending or descending order. Traditionally these functions are performed using <a href="/wiki/Grade" title="Grade">Grade</a> in APL: for example the <a href="/wiki/FinnAPL_idiom_library" title="FinnAPL idiom library">FinnAPL idiom library</a> gives <syntaxhighlight lang=apl inline>X[⍋X]</syntaxhighlight> and <syntaxhighlight lang=apl inline>X[⍒X]</syntaxhighlight> to sort <syntaxhighlight lang=apl inline>X</syntaxhighlight> ascending and descending, respectively...."</p>
<p><b>New page</b></p><div>'''Sort Up''' and '''Sort Down''' are [[monadic function]]s that order the [[major cell]]s of an array in ascending or descending order. Traditionally these functions are performed using [[Grade]] in APL: for example the [[FinnAPL idiom library]] gives <syntaxhighlight lang=apl inline>X[⍋X]</syntaxhighlight> and <syntaxhighlight lang=apl inline>X[⍒X]</syntaxhighlight> to sort <syntaxhighlight lang=apl inline>X</syntaxhighlight> ascending and descending, respectively. In several dialects or other array languages they are defined as [[primitives]], but with widely varying [[glyph]]s: <syntaxhighlight lang=apl inline>∧∨</syntaxhighlight> [[Extended Dyalog APL]], [[Kap]], and [[BQN]], <syntaxhighlight lang=apl inline><></syntaxhighlight> in [[dzaima/APL]], and <syntaxhighlight lang=apl inline>≤≥</syntaxhighlight> in [[Dyalog APL Vision]], as well as <code>^</code> for ascending sort in [[K9]] and [[Goal]].<br />
<br />
In [[Dyalog APL]] there are several [[Idiom recognition|recognized idioms]] for sorting: for ascending sorting, <syntaxhighlight lang=apl inline>{⍵[⍋⍵]}</syntaxhighlight> and <syntaxhighlight lang=apl inline>{⍵[⍋⍵;]}</syntaxhighlight> to sort [[rank]] 1 and 2 arrays specifically, and <syntaxhighlight lang=apl inline>{(⊂⍋⍵)⌷⍵}</syntaxhighlight> to sort any rank (all idioms have the same performance; the rank-specific ones were defined first and are shorter). The same idioms are recognized for descending sorting, replacing <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> with <syntaxhighlight lang=apl inline>⍒</syntaxhighlight>.<br />
<br />
Sorting with [[Grade]] is easiest using the [[Select]] (<syntaxhighlight lang=apl inline>⊇</syntaxhighlight>) or From function, which for example allows the ascending sort function on any rank to be written as the [[train]] <syntaxhighlight lang=apl inline>⍋⊇⊢</syntaxhighlight> in [[dzaima/APL]]. Using [[Reverse Compose]] <syntaxhighlight lang=apl inline>⍛</syntaxhighlight> as implemented in [[Kap]] or [[Dyalog APL Vision]], it can be written <syntaxhighlight lang=apl inline>⍋⍛⊇</syntaxhighlight>. In [[J]], it's implemented as [[Sort By]] (<syntaxhighlight lang=j inline>/:</syntaxhighlight> for ascending) with [[Commute]], <syntaxhighlight lang=j inline>/:~</syntaxhighlight>.<br />
<br />
A dedicated sorting implementation can be substantially faster than grade and selection both because sorting is generally faster than grade (particularly for long vectors with small-width elements, where an index may take more storage space than an element) and because selection is cache-unfriendly. For small-range data, a moveless variant of counting sort is possible for sorting but not grading.<ref>[[Marshall Lochbaum]]. [https://mlochbaum.github.io/BQN/implementation/primitive/sort.html Implementation of ordering functions]. [[BQN]] implementation notes.</ref> Flags for [[sorted]] data, which can be used to optimize various operations on the flagged array, can more easily be set with a dedicated sorting function.<ref>[[Marshall Lochbaum]]. [https://mlochbaum.github.io/BQN/implementation/primitive/flagsort.html Sortedness flags in primitive implementation]. [[BQN]] implementation notes.</ref><br />
<br />
== Documentation ==<br />
<br />
* [https://kapdemo.dhsdevelopments.com/reference.html#_sorting Kap]<br />
* [https://mlochbaum.github.io/BQN/doc/order.html#sort BQN]<br />
<br />
== References ==<br />
<references/><br />
{{APL built-ins}}[[Category:Primitive functions]]</div>
Marshall
https://aplwiki.com/index.php?title=Template:APL_built-ins&diff=11187&oldid=11175
Template:APL built-ins
2024-03-05T08:23:58Z
<p>Cartesian Product</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:23, 5 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l19">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selection</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selection</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>| [[First]] ∙ [[Pick]] ∙ [[Take]] ∙ [[Drop]] ∙ [[Unique]] ∙ [[Identity]] ∙ [[Stop]] ∙ [[Select]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Set function]]s ([[Intersection]] ∙ [[Union]] ∙ [[Without]]) ∙ [[Bracket indexing]] ∙ [[Index (function)|Index]]</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>| [[First]] ∙ [[Pick]] ∙ [[Take]] ∙ [[Drop]] ∙ [[Unique]] ∙ [[Identity]] ∙ [[Stop]] ∙ [[Select]] ∙ [[Replicate]] ∙ [[Expand]] ∙ [[Set function]]s ([[Intersection]] ∙ [[Union]] ∙ [[Without]]) ∙ [[Bracket indexing]] ∙ [[Index (function)|Index<ins style="font-weight: bold; text-decoration: none;">]] ∙ [[Cartesian Product</ins>]]</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|-</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selector</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>! Selector</div></td></tr>
</table>
Adám Brudzewsky
https://aplwiki.com/index.php?title=Stop&diff=11186&oldid=11176
Stop
2024-03-05T08:17:04Z
<p>⊢⍨</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en-GB">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:17, 5 March 2024</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l2">Line 2:</td>
<td colspan="2" class="diff-lineno">Line 2:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In other dialects, monadic <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> is the [[identity function]], exactly like <syntaxhighlight lang=apl inline>⊢</syntaxhighlight>. This redundancy means that it can be redefined without losing any primitive functionality. However, pairing both dyadic functions with the identity may be useful in constructing [[ambivalent]] functions, particularly in [[tacit]] programming. In [[April]], monadic <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> ("Empty") returns its argument is returned as a shy result, giving it the properties of both Stop and the identity.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>In other dialects, monadic <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> is the [[identity function]], exactly like <syntaxhighlight lang=apl inline>⊢</syntaxhighlight>. This redundancy means that it can be redefined without losing any primitive functionality. However, pairing both dyadic functions with the identity may be useful in constructing [[ambivalent]] functions, particularly in [[tacit]] programming. In [[April]], monadic <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> ("Empty") returns its argument is returned as a shy result, giving it the properties of both Stop and the identity.</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">In dialects where <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> does not return the argument when used monadically, the effect can be achieved with <syntaxhighlight lang=apl inline>⊢⍨</syntaxhighlight> using the [[commute]] operator.</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Documentation ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Documentation ==</div></td></tr>
</table>
Adám Brudzewsky
https://aplwiki.com/index.php?title=Cartesian_Product&diff=11178&oldid=0
Cartesian Product
2024-03-05T02:15:25Z
<p>Created page with "{| class=vertical-navbox style="float:right; font-size:500%; margin:0 1ex;" |<code>{</code> |} '''Cartesian Product''' (<code>{</code>, or <code>@</code> in <a href="/wiki/SAX" title="SAX">SAX</a>), '''All''', or '''Catalogue''' is a <a href="/wiki/Primitive" title="Primitive">primitive</a> <a href="/wiki/Monadic_function" title="Monadic function">monadic function</a> that returns an array of all combinations of choices from its argument, much like <a href="/wiki/Outer_Product" title="Outer Product">Outer Product</a>. It appears in <a href="/wiki/Rationalized_APL" title="Rationalized APL">Rationalized APL</a>, <a href="/wiki/A_Dictionary_of_APL" title="A Dictionary of APL">A Dictionary of APL</a>, <a href="/wiki/SAX" title="SAX">SAX</a>, and <a href="/wiki/J" title="J">J</a>. It shares a glyph with the dyadic function <a href="/wiki/Select" class="mw-redirect" title="Select">Select</a> (l..."</p>
<p><b>New page</b></p><div>{| class=vertical-navbox style="float:right; font-size:500%; margin:0 1ex;"<br />
|<code>{</code><br />
|}<br />
'''Cartesian Product''' (<code>{</code>, or <code>@</code> in [[SAX]]), '''All''', or '''Catalogue''' is a [[primitive]] [[monadic function]] that returns an array of all combinations of choices from its argument, much like [[Outer Product]]. It appears in [[Rationalized APL]], [[A Dictionary of APL]], [[SAX]], and [[J]]. It shares a glyph with the dyadic function [[Select]] (like [[bracket indexing]]), which uses the same all-combinations pattern in the way it handles indices.<br />
<br />
The argument to Cartesian Product is a [[boxed]] (nested) vector giving a list of arrays. It returns a boxed result whose [[shape]] is found by catenating all the argument array shapes, and where each result element contains one element from each argument array. In the following example from [[A Dictionary of APL]], vectors of shapes 2, 2, and 3 (combined with [[Link]]) give a result of shape <code>2 2 3</code>.<br />
<syntaxhighlight lang=apl><br />
{ 'ht'⊃'ao'⊃'gtw'<br />
|¯¯¯||¯¯¯||¯¯¯|<br />
|hag||hat||haw|<br />
|___||___||___|<br />
|¯¯¯||¯¯¯||¯¯¯|<br />
|hog||hot||how|<br />
|___||___||___|<br />
<br />
|¯¯¯||¯¯¯||¯¯¯|<br />
|tag||tat||taw|<br />
|___||___||___|<br />
|¯¯¯||¯¯¯||¯¯¯|<br />
|tog||tot||tow|<br />
|___||___||___|<br />
</syntaxhighlight><br />
<br />
== Documentation ==<br />
<br />
* J [https://code.jsoftware.com/wiki/Vocabulary/curlylf NuVoc], [http://www.jsoftware.com/help/dictionary/d520.htm Dictionary]<br />
<br />
{{APL built-ins}}[[Category:Primitive functions]]</div>
Marshall