Timeline of APL primitives: Difference between revisions

Jump to navigation Jump to search
Complex Floor at SHARP
(Created page with "The following table lists APL primitives, primitive extensions, and primitive-like syntax that are implemented across many dialects, or are precursors of such features. Features are ordered by the first APL dialect to implement them, and previous definitions in other array languages or as proposals are indicated in parentheses. Because primitives tend to have multiple names and may even change name within a dialect, common modern names are used rather than the name when...")
 
(Complex Floor at SHARP)
(13 intermediate revisions by the same user not shown)
Line 4: Line 4:
! Year !! Dialect        !! Primitives
! Year !! Dialect        !! Primitives
|-
|-
| 1965 || [[IVSYS/7090]] || [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]
| 1965 || [[IVSYS/7090]] || [[Identity]] (<syntaxhighlight lang=apl inline>+</syntaxhighlight>), [[Add]], [[Negate]], [[Subtract]], [[Multiply]], [[Divide]], [[Floor]], [[Ceiling]], [[Minimum]], [[Maximum]], [[Absolute value]], [[Modulus]], [[Exponential]], [[Power]], [[Not]], [[And]], [[Or]], [[comparison]]s, [[Iota]], [[Index of]], [[Shape]], [[Reshape]], [[Ravel]], [[Catenate]], [[Rotate]] (as <syntaxhighlight lang=apl inline>↑↓</syntaxhighlight>), [[Member of]], [[Encode]], [[Decode]], [[Reduce]], [[Compress]], [[Expand]], [[Inner product]], [[Outer product]], [[Assignment]], [[Bracket indexing]], [[Branch]]/[[Label]]
|-
|-
| 1966 || [[APL\360]]    || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]
| 1966 || [[APL\360]]    || [[Reciprocal]], [[Natural Logarithm]], [[Factorial]], [[Combinations]], [[Roll]], [[Transpose]], [[Reverse]]/[[Rotate]] (<syntaxhighlight lang=apl inline>⌽</syntaxhighlight>), [[Function axis]]
|-
|-
| 1968 || [[APL\360]]    || [[Signum]], [[Deal]], [[Pi times]], [[Circular]], [[Nand]], [[Nor]], [[Take]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Drop]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Grade]], [[Rotate First]] (<syntaxhighlight lang=apl inline>⊖</syntaxhighlight>), [[I-Beam]]
| 1968 || [[APL\360]]    || [[Signum]], [[Logarithm]], [[Deal]], [[Pi times]], [[Circular]], [[Nand]], [[Nor]], [[Take]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Drop]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Grade]], [[Reverse First]]/[[Rotate First]] (<syntaxhighlight lang=apl inline>⊖</syntaxhighlight>), [[I-Beam]]
|-
|-
| 1970 || [[APL\360]]    || overtake with [[Take]]
| 1970 || [[APL\360]]    || overtake with [[Take]]
Line 27: Line 27:
                           | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]
                           | [[Partitioned Enclose]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>), [[Type]] (<syntaxhighlight lang=apl inline>⊤</syntaxhighlight>), [[Split]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>), [[Mix]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>), [[Not Match]], [[Catenate First]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>), [[Compose]] (<syntaxhighlight lang=apl inline>∘</syntaxhighlight>), [[Each]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>), [[Zilde]], [[Choose indexing]]
|-
|-
| 1981 || [[SHARP APL]]  || [[function rank]], close [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted)
| 1981 || [[SHARP APL]]  || [[function rank]], [[Close composition|close]] [[Over]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>), [[Atop]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>), [[Under]] (<syntaxhighlight lang=apl inline>¨</syntaxhighlight>) ([[Operators and Functions]] 1978; not widely adopted) <br/> [[complex]] extensions: [[Circular]] functions 8 and up ([[Eugene McDonnell|McDonnell]] 1977), [[Conjugate]] (proposed Paul Penfield 1977; IBM documenation by 1975)
|-
|-
| 1982 || [[SHARP APL]]  || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)
| 1982 || [[SHARP APL]]  || [[Determinant]] (<syntaxhighlight lang=apl inline>.</syntaxhighlight>) ([[Ken Iverson|Iverson]] 1982)
|-
| 1982 || [[SHARP APL]]  || [[complex Floor]], Ceiling, Modulus, Encode ([[Eugene McDonnell|McDonnell]] 1973)
|-
|-
| 1983 || [[SHARP APL]]  || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)
| 1983 || [[SHARP APL]]  || [[Rank operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) ([[Arthur Whitney|Whitney]] 1982) <br/> [[Left]] (<syntaxhighlight lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<syntaxhighlight lang=apl inline>⊢</syntaxhighlight>), [[Conditional enclose]]/[[Link]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>)
|-
|-
| 1984 || [[APL2]]      || [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>)
| 1984 || [[APL2]]      || [[Partition]] (<syntaxhighlight lang=apl inline>⊂</syntaxhighlight>), [[First]] (<syntaxhighlight lang=apl inline>↑</syntaxhighlight>) and [[Mix]] (<syntaxhighlight lang=apl inline>⊃</syntaxhighlight>) opposite to NARS, [[Index (function)|Index]] (<syntaxhighlight lang=apl inline>⌷</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Depth]] (<syntaxhighlight lang=apl inline>≡</syntaxhighlight>), [[Enlist]] (<syntaxhighlight lang=apl inline>∊</syntaxhighlight>)
|-
|-
| 1987 || [[SHARP APL]]  || short left argument for [[Take]], [[Drop]]
| 1987 || [[SHARP APL]]  || [[Table]] (<syntaxhighlight lang=apl inline>⍪</syntaxhighlight>) <br/> short left argument for [[Take]], [[Drop]]
|-
|-
| 1989 || [[SHARP APL]]  || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)
| 1989 || [[SHARP APL]]  || [[Nub Sieve]] (<syntaxhighlight lang=apl inline>≠</syntaxhighlight>), [[Find]] (<syntaxhighlight lang=apl inline>⍷</syntaxhighlight>), [[Raze]] (<syntaxhighlight lang=apl inline>↓</syntaxhighlight>) ([[A Dictionary of APL]] 1987)
|-
|-
<!-- | ?    || [[SHARP APL]]           || [[From]] ([[Rationalized APL]] 1983)
<!-- | ?    || [[SHARP APL]] || [[From]] ([[Rationalized APL]] 1983)
|- -->
|- -->
| 2009 || [[NARS2000]]  || [[Function train]]s (proposed [[Ken Iverson|Iverson]] and [[Eugene McDonnell|McDonnell]] 1989; [[J]] 1990)
| 2009 || [[NARS2000]]  || [[Function train]]s (proposed [[Ken Iverson|Iverson]] and [[Eugene McDonnell|McDonnell]] 1989; [[J]] 1990)
Line 45: Line 47:
| 2010 || [[NARS2000]]  || [[Tally]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>, changed to <syntaxhighlight lang=apl inline>≢</syntaxhighlight> following Dyalog, 2011) ([[A+]] 1988, [[J]] 1990)
| 2010 || [[NARS2000]]  || [[Tally]] (<syntaxhighlight lang=apl inline>></syntaxhighlight>, changed to <syntaxhighlight lang=apl inline>≢</syntaxhighlight> following Dyalog, 2011) ([[A+]] 1988, [[J]] 1990)
|-
|-
| 2010 || [[NARS2000]]  || [[Indices]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[K]] 1996; [[J]] 2003)
| 2010 || [[NARS2000]]  || [[Indices]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[K]] 1996, [[J]] 2003)
|-
|-
| 2011 || [[NARS2000]]  || [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>) (SHARP APL (close) 1981)
| 2011 || [[NARS2000]]  || [[Over]] (<syntaxhighlight lang=apl inline>⍥</syntaxhighlight>) (SHARP (close) 1981)
|-
|-
| 2011 || [[NARS2000]]  || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986, [[J]] 1990)
| 2011 || [[NARS2000]]  || [[Square Root]]/[[Root]] (<syntaxhighlight lang=apl inline>√</syntaxhighlight>) (proposed [[Eugene McDonnell|McDonnell]] 1986; [[J]] 1990)
|-
|-
| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] pre-2000)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)-->
| 2011 || [[Dyalog APL]] || [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>) ([[J]] 1990)<!-- <br/> [[Variant]] (<syntaxhighlight lang=apl inline>⍠</syntaxhighlight>) ([[Operators and Functions]] 1978)-->
|-
|-
| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)
| 2014 || [[Dyalog APL]] || 2-[[train]] as [[Atop]] (proposed [[Roger Hui|Hui]] 2006; [[I]] 2012), [[major cell search]] ([[A+]] 1988)
|-
|-
| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]]) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP APL 1983)
| 2017 || [[Dyalog APL]] || [[At]] (<syntaxhighlight lang=apl inline>@</syntaxhighlight>) ([[John Scholes|Scholes]]) <br/> [[Stencil]] (<syntaxhighlight lang=apl inline>⌺</syntaxhighlight>) (from [[Cut]]: [[Rationalized APL]] 1983, [[J]] 1994) <br/> [[Interval Index]] (<syntaxhighlight lang=apl inline>⍸</syntaxhighlight>) ([[A+]] 1988, [[J]] 2006) <br/> [[Nest]] (<syntaxhighlight lang=apl inline>⊆</syntaxhighlight>) (SHARP 1983)
|-
|-
<!-- | 2018 || [[Extended Dyalog APL]] || [[Pair]] ([[Nial]] dyadic 1982, [[I]] 2012)
|- -->
<!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)
<!-- | 2018 || [[dzaima/APL]] || [[Array notation]] (numerous other languages; proposed [[Phil Last|Last]] 2015)
|- -->
|- -->
| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP APL (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)
| 2019 || [[dzaima/APL]] || [[Reverse Compose]] (<syntaxhighlight lang=apl inline>⍛</syntaxhighlight>) ([[I]] 2012, [[Extended Dyalog APL]] 2019) <!-- <br/> [[Pair]] (<syntaxhighlight lang=apl inline>⍮</syntaxhighlight>) ([[Nial]] dyadic 1982, [[I]] 2012) -->
|-
| 2020 || [[Dyalog APL]] || [[Atop]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) (SHARP (close) 1981), [[Constant]] (<syntaxhighlight lang=apl inline>⍨</syntaxhighlight>) ([[I]] 2012)
|}
|}


Navigation menu