Operators and Functions: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(Introduction)
 
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Operators and Functions''' is a research report published by [[Ken Iverson]] in 1978, collecting a set of [[operator]]s and [[function]]s he had developed over the preceding years. Released two years before Iverson left [[IBM]] for [[I.P. Sharp]] over differences regarding the direction of APL, it offers precursors for many of the ideas later developed in [[SHARP APL]]. Its primitives were used more directly in [[NARS]], which influenced [[Dyalog APL]] and in this way shaped much of present-day APL development.
'''Operators and Functions''' is a research report published by [[Ken Iverson]] in 1978, collecting a set of [[operator]]s and [[function]]s he had developed over the preceding years. Released two years before Iverson left [[IBM]] for [[I.P. Sharp]] over differences regarding the direction of APL, it offers precursors for many of the ideas later developed in [[SHARP APL]]. Its primitives were used more directly in [[NARS]], which influenced [[Dyalog APL]] and in this way shaped much of present-day APL development.
Functions:
{|class=wikitable
! Glyph                              !! Monadic              !! Dyadic
|-
| <syntaxhighlight lang=apl inline><</syntaxhighlight> || [[Enclose]]          ||
|-
| <syntaxhighlight lang=apl inline>></syntaxhighlight> || [[Disclose]]          ||
|-
| <syntaxhighlight lang=apl inline>∪</syntaxhighlight> || [[Nub]]              || [[Union]]
|-
| <syntaxhighlight lang=apl inline>∩</syntaxhighlight> || Ordered Nub          || [[Intersection]]
|-
| <math>\cup\!\!\!\!-</math>        || Distribution          ||
|-
| <math>\cap\!\!\!\!-</math>        || Ordered Distribution  ||
|-
| <syntaxhighlight lang=apl inline>~</syntaxhighlight> ||                      || [[Set Difference]]
|-
| <syntaxhighlight lang=apl inline>⊆</syntaxhighlight> || Inclusion            ||
|-
| <syntaxhighlight lang=apl inline>⊇</syntaxhighlight> || Inclusion            ||
|-
| <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> || Strict inclusion      ||
|-
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || Strict inclusion      ||
|-
| <syntaxhighlight lang=apl inline>⌷</syntaxhighlight> || Indexing              ||
|}
Operators:
{|class=wikitable
! Syntax                                !! Monadic call              !! Dyadic call
|-
| <syntaxhighlight lang=apl inline>f⍣B</syntaxhighlight>  || [[Power (operator)|Power]] ||
|-
| <syntaxhighlight lang=apl inline>f⍣∘</syntaxhighlight>  || Identity function (e.g. <syntaxhighlight lang=apl inline>+</syntaxhighlight> to <syntaxhighlight lang=apl inline>×</syntaxhighlight>) ||
|-
| <syntaxhighlight lang=apl inline>f⍨</syntaxhighlight>  ||                            || [[Commute]]
|-
| <syntaxhighlight lang=apl inline>̈∆</syntaxhighlight>    ||colspan=2| Domain
|-
| <syntaxhighlight lang=apl inline>f⍤a</syntaxhighlight>  ||colspan=2| Nuax
|-
| <syntaxhighlight lang=apl inline>f⍥a</syntaxhighlight>  ||colspan=2| Coax
|-
| <syntaxhighlight lang=apl inline>f⍢g</syntaxhighlight>  ||colspan=2| [[Dual]]
|-
| <syntaxhighlight lang=apl inline>f¨g</syntaxhighlight>  ||colspan=2| [[Over|Composition]]
|-
| <syntaxhighlight lang=apl inline>f/</syntaxhighlight>  ||                            || (Windowed) [[Windowed Reduction|Reduction]]
|-
| <syntaxhighlight lang=apl inline>f\</syntaxhighlight>  ||                            || (Windowed) Scan
|-
| <syntaxhighlight lang=apl inline>f⌿</syntaxhighlight>  ||                            || (Windowed) [[Windowed Reduction|Reduction]]
|-
| <syntaxhighlight lang=apl inline>f⍀</syntaxhighlight>  ||                            || (Windowed) Scan
|-
| <syntaxhighlight lang=apl inline>f∆</syntaxhighlight>  || Derivative                || Difference
|-
| <syntaxhighlight lang=apl inline>̄:</syntaxhighlight>    ||colspan=2| [[Variant]]
|-
| <math>\vee\!\!\!\!\wedge</math>      ||                            || Boolean
|}


== External links ==
== External links ==
* [[Jsoftware]]: [https://www.jsoftware.com/papers/opfns.htm Operators and Functions] (digitised)
* [[Jsoftware]]: [https://www.jsoftware.com/papers/opfns.htm Operators and Functions] (digitised)
{{APL dialects}}[[Category:Iverson designs]]
{{APL dialects}}[[Category:Iverson designs]]

Latest revision as of 22:27, 10 September 2022

Operators and Functions is a research report published by Ken Iverson in 1978, collecting a set of operators and functions he had developed over the preceding years. Released two years before Iverson left IBM for I.P. Sharp over differences regarding the direction of APL, it offers precursors for many of the ideas later developed in SHARP APL. Its primitives were used more directly in NARS, which influenced Dyalog APL and in this way shaped much of present-day APL development.

Functions:

Glyph Monadic Dyadic
< Enclose
> Disclose
Nub Union
Ordered Nub Intersection
Distribution
Ordered Distribution
~ Set Difference
Inclusion
Inclusion
Strict inclusion
Strict inclusion
Indexing

Operators:

Syntax Monadic call Dyadic call
f⍣B Power
f⍣∘ Identity function (e.g. + to ×)
f⍨ Commute
̈∆ Domain
f⍤a Nuax
f⍥a Coax
f⍢g Dual
f¨g Composition
f/ (Windowed) Reduction
f\ (Windowed) Scan
f⌿ (Windowed) Reduction
f⍀ (Windowed) Scan
f∆ Derivative Difference
̄: Variant
Boolean

External links

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