SHARP APL: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Marshall
No edit summary
Miraheze>Adám Brudzewsky
No edit summary
Line 11: Line 11:
}}
}}


'''SHARP APL''' (later '''SAX''') 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]]. Notable features of SHARP APL include [[function rank]], the [[Rank operator]], and [[leading axis theory]], as well as relative [[comparison tolerance]] and [[close composition]] operators including [[Under]].
'''SHARP APL''' (later '''SAX''': '''S'''HARP '''A'''PL for UNI'''X''') 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]]. Notable features of SHARP APL include [[function rank]], the [[Rank operator]], and [[leading axis theory]], as well as relative [[comparison tolerance]] and [[close composition]] operators including [[Under]].


== Primitive functions ==
== Primitive functions ==

Revision as of 13:43, 31 October 2019


SHARP APL (later SAX: SHARP APL for UNIX) 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. Notable features of SHARP APL include function rank, the Rank operator, and leading axis theory, as well as relative comparison tolerance and close composition operators including Under.

Primitive functions

Arithmetic

Scalar

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)
Nand
Nor
~ Not See Miscellaneous
? Roll See Non-scalar

Non-scalar

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

Relational

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

Indexing

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

Structural

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

Miscellaneous

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
¨ f n mf With
. f g 2 ∞ ∞ Alternant Inner-product
. m g ∞ ∞ Tie, Outer-product
. f m mf Ply

Implementation

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

Wikipedia

Template:APL programming language