From APL Wiki
Revision as of 14:49, 20 November 2019 by RichPark (talk | contribs) (20 revisions imported: Migrate from miraheze)
Jump to navigation Jump to search

SHARP APL running under DOSBox

SHARP APL was a standalone version of APL offered by I.P. Sharp Associates (IPSA), who had previously offered APL interpretation as a timesharing service. IPSA employed many notable APL designers including Ken Iverson, and SHARP APL was the source of many developments in flat array theory.

Primitive functions



All scalar functions have rank zero.

Glyph Monadic Dyadic
+ Conjugate/Identity Addition
- Negate Subtraction
× Signum Multiplication
÷ Reciprocal Division
* Exponential Power
Natural Logarithm Base-⍺ Logarithm
| Magnitude Residue
! Factorial Out-Of/Combinations
Floor Minimum
Ceiling Maximum
Pi Times Circle functions
And/Least Common Multiple (LCM)
Or/Greatest Common Divisor (GCD)
~ Not See Miscellaneous
? Roll See Non-scalar


Glyph Rank Monadic Ranks Dyadic
2 Matrix inverse ∞ 2 Matrix divide
? See Scalar * * Deal
∞ ∞ Encode
∞ ∞ Decode


Glyph Rank Monadic Ranks Dyadic
= See Miscellaneous 0 0 Equals
See Miscellaneous 0 0 Not Equals
< See Structural 0 0 Less Than
0 0 Less Than or Equal
0 0 Greater Than or Equal
> See Structural 0 0 Greater Than
∞ ∞ Match
0 ∞ Membership
∞ ∞ Find


Glyph Rank Monadic Ranks Dyadic
@ See Miscellaneous 0 ∞ From
1 Count 1 0 Index Of
∞ ∞ Index
Numeric Grade up ∞ ∞ Character Grade up
Numeric Grade down ∞ ∞ Character Grade down


Glyph Rank Monadic Ranks Dyadic
Shape of 1 ∞ Reshape
See Miscellaneous 1 ∞ Take
Raze 1 ∞ Drop
< Enclose/Box See Relational
Conditional Enclose ∞ ∞ Link
> 0 Disclose/Open See Relational
, Ravel ∞ ∞ Catenate
Table ∞ ∞ Catenate-Down
1 Reverse 0 1 Rotate
Reverse-Down ∞ ∞ Rotate-Down
Monadic Transpose 0 ∞ Dyadic Transpose


Glyph Rank Monadic Ranks Dyadic
Stop ∞ ∞ Left
Pass ∞ ∞ Right
Nubsieve See Relational
Nub See Structural
= Nubin See Relational
~ See Scalar ∞ ∞ Less
@ 1 All See Indexing
Monadic Format * ∞ Dyadic Format
* Execute

Primitive Operators

Glyph Operands Ranks Monadic Call Dyadic Call
/ f Reduce
f Reduce-down
\ f Scan
f Scan-down
/ m Copy/Compress
m Copy-down/Compress-down
\ m Expand
m Expand-down
f rf lf Swap
& f Select
f g mg mg mg On (close Over)
f n n n n Rank
m g mg mg mg Cut
f g mg mg mg Upon (close Atop)
¨ f g mg mg mg Under
¨ m g mg With (Bind)
¨ f n mf
. f g 2 Alternant Inner-product
. m g Tie, Outer-product
. f m mf Ply


Numeric types

SHARP originally supported only real numbers using double (8-byte) precision. Numbers were stored in one of three types:

  • Boolean, with one bit per value
  • Integer, with four bytes per value
  • Floating, with eight bytes per value

SATN-40 describes the addition of complex numbers to SHARP APL.

External links


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLdzaima/APLExtended Dyalog APLGNU APLKAPNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyJellyfishK (Q, KDB+) ∙ Lang5NialRAD
Overviews Timeline of array languagesTimeline of influential array languagesFamily tree of array languages