APL.SV: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Line 77: Line 77:
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate]], [[Laminate]] (allows axis)
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate]], [[Laminate]] (allows axis)
|-
|-
| <source lang=apl inline>[]</source>||                      || [[Indexing|Index]]
| <source lang=apl inline>[]</source>||                      || [[Bracket indexing|Index]]
|-
|-
| <source lang=apl inline>⍳</source> || [[Index generator]]  || [[Index of]]
| <source lang=apl inline>⍳</source> || [[Index generator]]  || [[Index of]]

Revision as of 08:03, 5 June 2020


APL.SV, "APL with Shared Variables", was an enhancement to APL\360 released by IBM in 1973. As the name suggests, APL.SV introduced the concept of a shared variable which could be used by multiple processes. It also included system variables as a kind of shared variable, and system functions. APL.SV also introduced the Format and Execute functions, and the Scan operator.

The enhancements to APL described herein are the result of more than six years of personal experience with APL\360, and countless comments and suggestions from many other users. The shared variable concept goes back in principle to early publication by Falkoff and Iverson, but is was R. H. Lathwell who recognized the practical potential of the idea and, with L. A. Morrow, designed an effective data processing facility based upon it. The system was implemented by Lathwell, Morrow, J. A. Brown, and C. F. Shen, all of whom contributed to the design of the other new features as well. R. J. Creasy first proposed the use of surrogate names.

APLSV User's Manual[1]

Primitives

Functions

Glyph Monadic Dyadic
+ Plus (Identity) Plus
- Negative Minus
× Signum Times
÷ Reciprocal Divide
Ceiling Maximum
Floor Minimum
* Exponential Power
Natural logarithm Logarithm
| Magnitude Residue
! Factorial Binomial coefficient
? Roll Deal
Pi times Circular
~ Not
And
Or
Nand
Nor
< Less
Not greater
= Equal
Not less
> Greater
Not equal
Size Reshape
, Ravel Catenate, Laminate (allows axis)
[] Index
Index generator Index of
Take
Drop
Grade up (allows axis)
Grade down (allows axis)
/ Compress
(allows axis)
\ Expand
(allows axis)
Reverse
(allows axis)
Rotate
(allows axis)
Transpose
Membership
Decode
Encode
Matrix inverse Matrix division
Execute
Monadic format Dyadic format

Operators

Glyph Valence Monadic call Dyadic call
/ Monadic Reduction
(allows axis)
Monadic
\ Monadic Scan
(allows axis)
Monadic
. Dyadic Inner product
∘. Monadic Outer product
[] Monadic Axis

References

APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000PometoTinyAPL
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages