Primitive operator: Difference between revisions

Jump to navigation Jump to search
64 bytes added ,  21:38, 4 November 2019
no edit summary
Miraheze>Marshall
(Created page with "A '''primitive operator''' is a kind of operator which is defined by the language. Like a primitive function, a primitive operator is written with a single glyph i...")
 
Miraheze>Adám Brudzewsky
No edit summary
Line 1: Line 1:
A '''primitive operator''' is a kind of [[operator]] which is defined by the language. Like a [[primitive function]], a primitive operator is written with a single [[glyph]] in APL but may use multiple characters in other languages. The one exception to the single-glyph rule is the [[Outer Product]], which is written <source lang=apl inline>∘.</source>. While some languages consider the outer product to be a case of the [[dyadic operator]] [[Inner Product]] with a [[Jot]] as its left operand, others consider it to be a primitive [[monadic operator]] on its own.
A '''primitive operator''' is a kind of [[operator]] which is defined by the language. Like a [[primitive function]], a primitive operator is written with a single [[glyph]] in APL but may use multiple characters in other languages. The one exception to the single-glyph rule is the [[Outer Product]], which is written <source lang=apl inline>∘.</source>. While some dialects consider the outer product to be a case of the [[dyadic operator]] [[Inner Product]] with a [[Jot]] (which they interpret as <source lang=apl inline>⊂⍬</source>) as its left operand, others consider it to be a primitive [[monadic operator]] on its own.


Primitive operators have historically been very limited, a condition which has caused greater variety in modern operators than in functions as language designers have extended the scope of operators in different ways. [[Iverson notation]] did not have a unified concept of an operator, and considered everything which is now an APL operator to be a form of special syntax. [[APL\360]] generalized the concept of an operator, but defined only a small number of them: [[reduction]]s, [[scan]]s, [[inner product]]s, and [[outer product]]s. These operators applied only to primitive functions.
Primitive operators have historically been very limited, a condition which has caused greater variety in modern operators than in functions as language designers have extended the scope of operators in different ways. [[Iverson notation]] did not have a unified concept of an operator, and considered everything which is now an APL operator to be a form of special syntax. [[APL\360]] generalized the concept of an operator, but defined only a small number of them: [[reduction]]s, [[scan]]s, [[inner product]]s, and [[outer product]]s. These operators applied only to primitive functions.


Languages which are notable for introducing many primitive operators include [[SHARP APL]], [[J]], [[Dyalog APL]] (which has adopted some operators from J), and [[NARS2000]].
Dialects which are notable for introducing many primitive operators include [[SHARP APL]], [[J]], [[Dyalog APL]] (which has adopted some operators from J), and [[NARS2000]].


{{APL programming language}}
{{APL programming language}}

Navigation menu