2,954
edits
(→Primitive functions: Show 1987 primitives in the tables: some guessing, but it's better than using SAX, which may have primitives never added to SHARP) |
(→Releases: Add Table to release 19) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
| released = 1976 via [[time-sharing]]; around 1979 as a product | | released = 1976 via [[time-sharing]]; around 1979 as a product | ||
| withdrawn = around 1993 | | withdrawn = around 1993 | ||
| latest release | | latest release version = 20 / 1989 | ||
| platforms = S/370, x86 | | platforms = S/370, x86 | ||
| operating systems = DOS/390, DOS, UNIX (AIX, Solaris), Linux | | operating systems = DOS/390, DOS, UNIX (AIX, Solaris), Linux | ||
Line 30: | Line 30: | ||
| || 1980 || Compress extended to [[Replicate]]; [[LCM]] and [[GCD]]; [[Grade]] on rank >1<ref>IPSA. [https://www.softwarepreservation.org/projects/apl/Manuals/SharpAPLManualCorrections/view SHARP APL Reference Manual Additions and Corrections, June 1981]</ref> | | || 1980 || Compress extended to [[Replicate]]; [[LCM]] and [[GCD]]; [[Grade]] on rank >1<ref>IPSA. [https://www.softwarepreservation.org/projects/apl/Manuals/SharpAPLManualCorrections/view SHARP APL Reference Manual Additions and Corrections, June 1981]</ref> | ||
|- | |- | ||
| || 1981-05 || Enclosed arrays; [[Enclose]] (<syntaxhighlight lang=apl inline><</syntaxhighlight>), [[Disclose]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>), [[Match]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>); operators [[Atop|Over]] (<syntaxhighlight lang=apl inline> | | || 1981-05 || Enclosed arrays; [[Enclose]] (<syntaxhighlight lang=apl inline><</syntaxhighlight>), [[Mix|Disclose]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>), [[Match]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>); operators [[Atop|Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Over|On]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Under|With]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>); [[complex number]]s<ref>IPSA Newsletter July/August 1981 ([https://www.snakeisland.com/IPSANewsletter_1981_07_08.pdf pdf])</ref> | ||
|- | |- | ||
| || 1982-05 || Generalized [[determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>); debugging and formatting improvements<ref>IPSA Newsletter July/August 1982 ([https://www.snakeisland.com/IPSANewsletter_1982_07_08.pdf pdf])</ref> | | || 1982-05 || Generalized [[determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>); debugging and formatting improvements<ref>IPSA Newsletter July/August 1982 ([https://www.snakeisland.com/IPSANewsletter_1982_07_08.pdf pdf])</ref> | ||
Line 40: | Line 40: | ||
| 17 || 1985-01<ref>York University Computer Museum. [http://www.cse.yorku.ca/museum/collections/IPSA/ipsa_col.html SHARP APL collection catalogue].</ref> || | | 17 || 1985-01<ref>York University Computer Museum. [http://www.cse.yorku.ca/museum/collections/IPSA/ipsa_col.html SHARP APL collection catalogue].</ref> || | ||
|- | |- | ||
| 19 || 1987-03 || Short left argument for [[Take]]/[[Drop]]<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> | | 19 || 1987-03 || Short left argument for [[Take]]/[[Drop]]; [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>)<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> | ||
|- | |- | ||
| 20 || 1989-09 || [[Find|In]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Nubsieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>); padding for [[Disclose]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>)<ref>[[IPSA]]. [https://archive.org/details/sharp-apl-release-20.0-guide-for-apl-programmers "SHARP APL Release 20.0: Guide for APL Programmers"].</ref> | | 20 || 1989-09 || [[Find|In]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Nubsieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>); padding for [[Mix|Disclose]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>)<ref>[[IPSA]]. [https://archive.org/details/sharp-apl-release-20.0-guide-for-apl-programmers "SHARP APL Release 20.0: Guide for APL Programmers"].</ref> | ||
|} | |} | ||
Line 64: | Line 64: | ||
| <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]] || [[Division]] | | <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]] || [[Division]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]] || [[Power function|Power]] | | <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]] || [[Power (function)|Power]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]] || [[Logarithm|Base-⍺ Logarithm]] | | <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]] || [[Logarithm|Base-⍺ Logarithm]] | ||
Line 88: | Line 88: | ||
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]] || | | <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]] || See [[#Non- | | <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]] || See [[#Non-scalar|Non-scalar]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>=</syntaxhighlight> || || [[Equals]] | | <syntaxhighlight lang=apl inline>=</syntaxhighlight> || || [[Equals]] | ||
Line 94: | Line 94: | ||
| <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || || [[Not Equals]] | | <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || || [[Not Equals]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || See [[#Non- | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || See [[#Non-scalar|Non-scalar]] || [[Less Than]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || || [[Less Than or Equal]] | | <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || || [[Less Than or Equal]] | ||
Line 100: | Line 100: | ||
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || || [[Greater Than or Equal]] | | <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || || [[Greater Than or Equal]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || See [[#Non- | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || See [[#Non-scalar|Non-scalar]] || [[Greater Than]] | ||
|} | |} | ||
Line 132: | Line 132: | ||
| <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || || || 1 ∞ || [[Drop]] | | <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || || || 1 ∞ || [[Drop]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]] | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]] || || See [[#Scalar|Scalar]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || | | <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || ∞ || [[Conditional enclose]] || ∞ ∞ || [[Link]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Disclose]] | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Mix|Disclose]] || || See [[#Scalar|Scalar]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>,</syntaxhighlight> || ∞ || [[Ravel]] || ∞ ∞ || [[Catenate]] | | <syntaxhighlight lang=apl inline>,</syntaxhighlight> || ∞ || [[Ravel]] || ∞ ∞ || [[Catenate]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> || ∞ || [[Table]] || ∞ ∞ || [[Catenate First | | <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> || ∞ || [[Table]] || ∞ ∞ || [[Catenate First]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || 1 || [[Reverse]] || 0 1 || [[Rotate]] | | <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || 1 || [[Reverse]] || 0 1 || [[Rotate]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || ∞ || [[Reverse First | | <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || ∞ || [[Reverse First]] || ∞ ∞ || [[Rotate First]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || ∞ || Monadic [[Transpose]] || 0 ∞ || Dyadic [[Transpose]] | | <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || ∞ || Monadic [[Transpose]] || 0 ∞ || Dyadic [[Transpose]] | ||
Line 164: | Line 164: | ||
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Reduce]] || | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Reduce]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Reduce First | | <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Reduce First]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Scan]] || | | <syntaxhighlight lang=apl inline>\</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Scan]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Scan First | | <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Scan First]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>/</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate | | <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate First]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>\</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Expand]] || | | <syntaxhighlight lang=apl inline>\</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Expand]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Expand First | | <syntaxhighlight lang=apl inline>⍀</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Expand First]] || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| On ([[close Over]]) | | <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| On ([[close Over]]) | ||
Line 186: | Line 182: | ||
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>n n</syntaxhighlight> ||colspan=2| [[Rank operator|Rank]] | | <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>n n</syntaxhighlight> ||colspan=2| [[Rank operator|Rank]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[ | | <syntaxhighlight lang=apl inline>⍤</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[Cut]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>⍥</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| Upon ([[close Atop]]) | | <syntaxhighlight lang=apl inline>⍥</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| Upon ([[close Atop]]) | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[close Under| | | <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg mg</syntaxhighlight> ||colspan=2| [[close Under|Dual]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || ||rowspan="2"|With ([[Bind]]) || | | <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>mg</syntaxhighlight> || ||rowspan="2"|With ([[Bind]]) || | ||
Line 196: | Line 192: | ||
| <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>mf</syntaxhighlight> || || | | <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>n</syntaxhighlight> || <syntaxhighlight lang=apl inline>mf</syntaxhighlight> || || | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>2</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞ ∞</syntaxhighlight> || [[ | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || <syntaxhighlight lang=apl inline>2</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞ ∞</syntaxhighlight> || [[Determinant]] || [[Inner Product]] | ||
|- | |- | ||
| <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline> | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || || <syntaxhighlight lang=apl inline>∞ ∞</syntaxhighlight> || || [[Outer Product]] | ||
|} | |} | ||
Line 291: | Line 285: | ||
| 35 || 1980-08-15 || || || Peter Wooster || Extended [[Grade|Upgrade and Downgrade]] | | 35 || 1980-08-15 || || || Peter Wooster || Extended [[Grade|Upgrade and Downgrade]] | ||
|- | |- | ||
| 36 || 1980-04-20 || || || [[Ken Iverson]] || [[Direct definition|Direct Definition]] | | 36 || 1980-04-20 || || || [[Ken Iverson]] || [[Direct definition (notation)|Direct Definition]] | ||
|- | |- | ||
| 37 || || 1 || 1982-06-01 || John D. Burger || IBM 3270 User Guide | | 37 || || 1 || 1982-06-01 || John D. Burger || IBM 3270 User Guide |