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
∘.. 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.
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: reductions, scans, inner products, and outer products. These operators applied only to primitive functions.