APL.SV: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Created page with "{{Infobox array language | array model = flat without boxes | index origin = <source lang=apl inline>⎕IO</source>0 or 1...")
 
(→‎Functions: Use table from GH20-0906-1)
Line 27: Line 27:
! Glyph                              !! Monadic              !! Dyadic
! Glyph                              !! Monadic              !! Dyadic
|-
|-
| <source lang=apl inline>+</source> || [[Conjugate]]         || [[Plus]]
| <source lang=apl inline>+</source> || Plus ([[Identity]]|| [[Plus]]
|-
|-
| <source lang=apl inline>-</source> || [[Negate|Negative]]  || [[Subtract|Minus]]
| <source lang=apl inline>-</source> || [[Negate|Negative]]  || [[Subtract|Minus]]
Line 35: Line 35:
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Divide]]
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Divide]]
|-
|-
| <source lang=apl inline>|</source> || [[Magnitude]]         || [[Residue]]
| <source lang=apl inline></source> || [[Ceiling]]           || [[Maximum]]
|-
|-
| <source lang=apl inline>⌊</source> || [[Floor]]            || [[Minimum]]
| <source lang=apl inline>⌊</source> || [[Floor]]            || [[Minimum]]
|-
|-
| <source lang=apl inline></source> || [[Ceiling]]           || [[Maximum]]
| <source lang=apl inline>*</source> || [[Exponential]]       || [[Power]]
|-
|-
| <source lang=apl inline>?</source> || [[Roll]]             || [[Deal]]
| <source lang=apl inline></source> || [[Natural logarithm]] || [[Logarithm]]
|-
|-
| <source lang=apl inline>*</source> || [[Exponential]]       || [[Power]]
| <source lang=apl inline>|</source> || [[Magnitude]]         || [[Residue]]
|-
|-
| <source lang=apl inline></source> || [[Natural logarithm]] || [[General logarithm]]
| <source lang=apl inline>!</source> || [[Factorial]]         || [[Binomial coefficient]]
|-
|-
| <source lang=apl inline></source> || [[Pi times]]         || [[Circle function|Circular, hyperbolic, and pythagorean functions]]
| <source lang=apl inline>?</source> || [[Roll]]             || [[Deal]]
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]         || [[Binomial]]
| <source lang=apl inline></source> || [[Pi times]]         || [[Circle function|Circular]]
|-
|-
| <source lang=apl inline>~</source> || [[Not]]              ||
| <source lang=apl inline>~</source> || [[Not]]              ||
Line 73: Line 73:
| <source lang=apl inline>≠</source> ||                      || [[Not equal]]
| <source lang=apl inline>≠</source> ||                      || [[Not equal]]
|-
|-
| <source lang=apl inline>⍴</source> || [[Shape|Shape of]]   || [[Reshape]]
| <source lang=apl inline>⍴</source> || [[Shape|Size]]       || [[Reshape]]
|-
|-
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate|Catenate, Laminate]] (allows axis)
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate]], [[Laminate]] (allows axis)
|-
|-
| <source lang=apl inline></source> ||rowspan=2| [[Reverse]]<br>(allows axis) ||rowspan=2| [[Rotate]]<br>(allows axis)
| <source lang=apl inline>[]</source>||                       || [[Indexing|Index]]
|-
|-
| <source lang=apl inline></source>
| <source lang=apl inline></source> || [[Index generator]]  || [[Index of]]
|-
| <source lang=apl inline>⍉</source> ||colspan=2| [[Transpose]]
|-
|-
| <source lang=apl inline>↑</source> ||                      || [[Take]]
| <source lang=apl inline>↑</source> ||                      || [[Take]]
|-
|-
| <source lang=apl inline>↓</source> ||                      || [[Drop]]
| <source lang=apl inline>↓</source> ||                      || [[Drop]]
|-
| <source lang=apl inline>⍋</source> || [[Grade up]]  (allows axis) ||
|-
| <source lang=apl inline>⍒</source> || [[Grade down]] (allows axis) ||
|-
|-
| <source lang=apl inline>/</source> ||                      ||rowspan=2| [[Compress]]<br>(allows axis)
| <source lang=apl inline>/</source> ||                      ||rowspan=2| [[Compress]]<br>(allows axis)
Line 95: Line 97:
| <source lang=apl inline>⍀</source> ||
| <source lang=apl inline>⍀</source> ||
|-
|-
| <source lang=apl inline>[]</source>||                       || [[Indexing]]
| <source lang=apl inline></source> ||rowspan=2| [[Reverse]]<br>(allows axis) ||rowspan=2| [[Rotate]]<br>(allows axis)
|-
|-
| <source lang=apl inline></source> || [[Index generator]]  || [[Index of]]
| <source lang=apl inline></source>
|-
| <source lang=apl inline>⍉</source> ||colspan=2| [[Transpose]]
|-
|-
| <source lang=apl inline>∊</source> ||                      || [[Membership]]
| <source lang=apl inline>∊</source> ||                      || [[Membership]]
|-
|-
| <source lang=apl inline></source> || [[Grade up]]         ||
| <source lang=apl inline></source> ||                      || [[Decode]]
|-
|-
| <source lang=apl inline></source> || [[Grade down]]       ||
| <source lang=apl inline></source> ||                      || [[Encode]]
|-
|-
| <source lang=apl inline>⌹</source> || [[Matrix inverse]]    || [[Matrix division]]
| <source lang=apl inline>⌹</source> || [[Matrix inverse]]    || [[Matrix division]]
|-
| <source lang=apl inline>⊥</source> ||                      || [[Decode]]
|-
| <source lang=apl inline>⊤</source> ||                      || [[Encode]]
|-
|-
| <source lang=apl inline>⍎</source> ||                      || [[Execute]]
| <source lang=apl inline>⍎</source> ||                      || [[Execute]]

Revision as of 09:38, 16 April 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