Primitive operator: Difference between revisions
Jump to navigation
Jump to search
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 | 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. | ||
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}} |