4,494
edits
(Found a definite release time) |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox array language | {{Infobox array language | ||
| logo = [[File:Sharp APL logo.png]] | |||
| array model = [[Flat array model|flat]] with [[Box|boxes]] | | array model = [[Flat array model|flat]] with [[Box|boxes]] | ||
| index origin = 0 or 1 | | index origin = 0 or 1 | ||
Line 5: | Line 6: | ||
| numeric types = [[complex]] floats | | numeric types = [[complex]] floats | ||
| unicode support = none | | unicode support = none | ||
| released = | | released = 1976 via [[time-sharing]]; around 1979 as a product | ||
| withdrawn = around 1993 | | withdrawn = around 1993 | ||
| latest release = 002.140 / 1988 | | latest release = 002.140 / 1988 | ||
Line 13: | Line 14: | ||
| developer = [[I.P. Sharp Associates]] | | developer = [[I.P. Sharp Associates]] | ||
| influenced by = [[APL\360]] | | influenced by = [[APL\360]] | ||
| influenced = [[SAX]], [[J]], [[A+]], [[K]] | | influenced = [[SAX]], [[J]], [[A+]], [[K]], [[Dyalog APL]], [[SHARP APL/HP]] | ||
| file ext = .saw, .saf, .sam | | file ext = .saw, .saf, .sam | ||
| download = [http://www.sigapl.org/Archives/waterloo_archive/apl/sharp.apl/index.html SIGAPL] | | download = [http://www.sigapl.org/Archives/waterloo_archive/apl/sharp.apl/index.html SIGAPL] | ||
}} | }} | ||
[[File:Old SHARP APL.png|thumb|right|SHARP APL running under DOSBox]] | [[File:Old SHARP APL.png|thumb|right|SHARP APL running under DOSBox]] | ||
'''SHARP APL''' was | '''SHARP APL''' was an APL implementation offered by [[I.P. Sharp Associates]] (IPSA), originally as part of its [[time-sharing]] service and later as a stand-alone product. It was split off from [[STSC]]'s [[APL*PLUS]], which until then had been sold jointly by the two companies. SHARP APL was the source of many developments in [[flat array theory]], driven by [[Ken Iverson]] and other APL designers at IPSA. | ||
== Primitive functions == | == Primitive functions == | ||
Line 30: | Line 32: | ||
! Glyph !! Monadic !! Dyadic | ! Glyph !! Monadic !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Conjugate]]/Identity || [[Addition]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Negate]] || [[Subtraction]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Signum]] || [[Multiplication]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]] || [[Division]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Exponential]] || [[Power function|Power]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]] || [[Logarithm|Base-⍺ Logarithm]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Magnitude]] || [[Residue]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Factorial]] || Out-Of/[[Combinations]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Floor]] || [[Minimum]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]] || [[Maximum]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Pi Times]] || [[Circle functions]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∧</syntaxhighlight> || || [[And]]/Least Common Multiple (LCM) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∨</syntaxhighlight> || || [[Or]]/Greatest Common Divisor (GCD) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍲</syntaxhighlight> || || [[Nand]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍱</syntaxhighlight> || || [[Nor]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Not]] || See [[#Miscellaneous|Miscellaneous]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Roll]] || See [[#Non-Scalar|Non-scalar]] | ||
|} | |} | ||
Line 70: | Line 72: | ||
! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || 2 || [[Matrix inverse]] || ∞ 2 || [[Matrix divide]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>?</syntaxhighlight> || || See [[#Scalar|Scalar]] || * * || [[Deal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> || || || ∞ ∞ || [[Encode]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> || || || ∞ ∞ || [[Decode]] | ||
|} | |} | ||
Line 84: | Line 86: | ||
! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>=</syntaxhighlight> || || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Equals]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || || See [[#Miscellaneous|Miscellaneous]] || 0 0 || [[Not Equals]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || || See [[#Structural|Structural]] || 0 0 || [[Less Than]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || || || 0 0 || [[Less Than or Equal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || || || 0 0 || [[Greater Than or Equal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || || See [[#Structural|Structural]] || 0 0 || [[Greater Than]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≡</syntaxhighlight> || || || ∞ ∞ || [[Match]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∊</syntaxhighlight> || || || 0 ∞ || [[Membership]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍷</syntaxhighlight> || || || ∞ ∞ || [[Find]] | ||
|} | |} | ||
Line 108: | Line 110: | ||
! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>@</syntaxhighlight> || || See [[#Miscellaneous|Miscellaneous]] || 0 ∞ || [[Squad Index|From]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || 1 || [[Index Generator|Count]] || 1 0 || [[Index Of]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍸</syntaxhighlight> || || || ∞ ∞ || [[Indices of Match|Index]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> || ∞ || Numeric [[Grade up]] || ∞ ∞ || Character [[Grade up]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> || ∞ || Numeric [[Grade down]] || ∞ ∞ || Character [[Grade down]] | ||
|} | |} | ||
Line 124: | Line 126: | ||
! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍴</syntaxhighlight> || ∞ || [[Shape|Shape of]] || 1 ∞ || [[Reshape]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || || See [[#Miscellaneous|Miscellaneous]] || 1 ∞ || [[Take]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || ∞ || [[Raze]] || 1 ∞ || [[Drop]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || ∞ || [[Enclose]]/Box || || See [[#Relational|Relational]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || ∞ || [[Enclose if simple|Conditional Enclose]] || ∞ ∞ || [[Link]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || 0 || [[Disclose]]/Open || || See [[#Relational|Relational]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>,</syntaxhighlight> || ∞ || [[Ravel]] || ∞ ∞ || [[Catenate]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍪</syntaxhighlight> || ∞ || [[Table]] || ∞ ∞ || [[Catenate First|Catenate-Down]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || 1 || [[Reverse]] || 0 1 || [[Rotate]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊖</syntaxhighlight> || ∞ || [[Reverse First|Reverse-Down]] || ∞ ∞ || [[Rotate First|Rotate-Down]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || ∞ || Monadic [[Transpose]] || 0 ∞ || Dyadic [[Transpose]] | ||
|} | |} | ||
Line 152: | Line 154: | ||
! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ! Glyph !! Rank !! Monadic !! Ranks !! Dyadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊣</syntaxhighlight> || ∞ || [[Stop]] || ∞ ∞ || [[Left Identity|Left]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊢</syntaxhighlight> || ∞ || [[Identity|Pass]] || ∞ ∞ || [[Right Identity|Right]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || ∞ || [[Nubsieve]] || || See [[#Relational|Relational]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || ∞ || [[Nub]] || || See [[#Structural|Structural]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>=</syntaxhighlight> || ∞ || [[Nubin]] || || See [[#Relational|Relational]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>~</syntaxhighlight> || || See [[#Scalar|Scalar]] || ∞ ∞ || [[Without|Less]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>@</syntaxhighlight> || 1 || [[Cartesian Product|All]] || || See [[#Indexing|Indexing]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || ∞ || [[Monadic Format]] || * ∞ || [[Dyadic Format]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || * || [[Execute]] || || | ||
|} | |} | ||
Line 176: | Line 178: | ||
! Glyph !!colspan=2|Operands !!colspan=2|Ranks !! Monadic Call !! Dyadic Call | ! Glyph !!colspan=2|Operands !!colspan=2|Ranks !! Monadic Call !! Dyadic Call | ||
|- | |- | ||
| < | | <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|Reduce-down]] || | ||
|- | |- | ||
| < | | <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|Scan-down]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate|Copy]]/[[Compress]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌿</syntaxhighlight> || || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || || [[Replicate|Copy]]-down/[[Compress]]-down || | ||
|- | |- | ||
| < | | <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|Expand-down]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || <syntaxhighlight lang=apl inline>rf lf</syntaxhighlight> ||colspan=2| Swap | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>&</syntaxhighlight> || || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞</syntaxhighlight> || <syntaxhighlight lang=apl inline>∞ ∞</syntaxhighlight> ||colspan=2| Select | ||
|- | |- | ||
| < | | <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>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| [[Cut operator|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| [[close Under|Under]] | ||
|- | |- | ||
| < | | <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>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> || [[Alternant]] || [[Inner Product|Inner-product]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>g</syntaxhighlight> || || <syntaxhighlight lang=apl inline>∞ ∞</syntaxhighlight> || || [[Tie]], [[Outer Product|Outer-product]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || <syntaxhighlight lang=apl inline>f</syntaxhighlight> || <syntaxhighlight lang=apl inline>m</syntaxhighlight> || <syntaxhighlight lang=apl inline>mf</syntaxhighlight> || || [[Ply]] || | ||
|} | |} | ||
Line 329: | Line 331: | ||
| 48 || 1983-11-30 || || || John D. Burger || Workspace 1 HCPRINT | | 48 || 1983-11-30 || || || John D. Burger || Workspace 1 HCPRINT | ||
|} | |} | ||
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Leading axis languages]] | {{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Leading axis languages]] |