Here we present all of the unary and binary operators in the language. They are members of the class Keyword. The binary operators are != # #? % %= & &= * ** **= *= + ++ ++= += , - -= -> . .. ..< ..<= ..= .? / // //= /= : := ; < <- << <<= <= <== <=== <==> <==>= = =!= == === ===> ===>= ==> ==>= => > >= >> >>= ? ?? ??= @ @= @@ @@= \ \= \\ \\= ^ ^** ^**= ^< ^<= ^= ^> ^>= ^^ ^^= _ _< _<= _= _> _>= | |- |-= |= |_ |_= || ||= and or SPACE xor , the unary prefix operators are # * + , - < << <= <== <=== > >= ? ?? |- not , and the unary postfix operators are ! (*) , ; ^! ^* ^~ _! _* _~ ~ .

Of those, the ones for which users may install new methods are the binary operators % %= & &= * ** **= *= + ++ ++= += - -= .. ..< ..<= ..= / // //= /= : << <<= <== <=== <==> <==>= == ===> ===>= ==> ==>= >> >>= ? ?? ??= @ @= @@ @@= \ \= \\ \\= ^ ^** ^**= ^< ^<= ^= ^> ^>= ^^ ^^= _ _< _<= _= _> _>= | |- |-= |= |_ |_= || ||= and or SPACE xor , the unary prefix operators * + - < << <= <== <=== > >= ? ?? |- not , and the unary postfix operators ! (*) ^! ^* ^~ _! _* _~ ~ .

- = -- assignment
- := -- assignment of method or new local variable
- <- -- assignment with left side evaluated

- == -- equality
- != -- inequality
- === -- see Thing === Thing -- strict equality
- =!= -- strict inequality

- < -- less than
- <= -- less than or equal
- > -- greater than
- >= -- greater than or equal
- ? -- comparison operator

- SPACE -- blank operator; often used for function application, making polynomial rings
- -> -- make a function
- @@ -- a binary operator
- \\ -- a binary operator
- \ -- a binary operator

- _ -- a binary operator, used for subscripting and access to elements
- . -- access to elements whose key is a symbol
- .? -- check for presence of elements whose key is a symbol
- # -- length or access to elements
- #? -- check existence of value in a list, hash table, database, or string

- ! -- factorial
- + -- a unary or binary operator, usually used for addition
- - -- a unary or binary operator, usually used for negation or subtraction
- * -- a binary operator, usually used for multiplication
- / -- a binary operator, usually used for division
- // -- a binary operator, usually used for quotient
- % -- a binary operator, usually used for remainder and reduction
- ^ -- a binary operator, usually used for powers
- & -- a binary operator
- ++ -- a binary operator, usually used for direct sum
- ** -- a binary operator, usually used for tensor product or Cartesian product
- ^** -- a binary operator, usually used for tensor or Cartesian power
- ~ -- a unary postfix operator
- (*) -- a unary postfix operator, used for indicating a graded object
- : -- a binary operator, uses include repetition; ideal quotients

- .. -- a binary operator, used for sequences of consecutive items
- ..< -- a binary operator, used for sequences of consecutive items, not including the endpoint
- << -- a binary operator (file output, ...)
- >> -- a binary operator, uses include bit shifting, or attaching optional inputs to functions
- | -- a binary operator, often used for horizontal concatenation
- || -- a binary operator, often used for vertical concatenation
- @ -- a binary operator
- ^^ -- logical exclusive-or
- ?? -- null coalescing operator
- |- -- a binary operator
- <==> -- a binary operator
- ===> -- a binary operator
- ==> -- a binary operator
- <=== -- a unary and binary operator
- <== -- a unary and binary operator

- => -- produce an Option
- , -- the comma, used for separating entries in a list or sequence
- ; -- expression separator

- %= -- augmented assignment for %
- &= -- augmented assignment for &
- **= -- augmented assignment for **
- *= -- augmented assignment for *
- ++= -- augmented assignment for ++
- += -- augmented assignment for +
- -= -- augmented assignment for -
- ..<= -- augmented assignment for ..<
- ..= -- augmented assignment for ..
- //= -- augmented assignment for //
- /= -- augmented assignment for /
- <<= -- augmented assignment for <<
- <==>= -- augmented assignment for <==>
- ===>= -- augmented assignment for ===>
- ==>= -- augmented assignment for ==>
- >>= -- augmented assignment for >>
- ??= -- augmented assignment for ??
- @= -- augmented assignment for @
- @@= -- augmented assignment for @@
- \= -- augmented assignment for \
- \\= -- augmented assignment for \\
- ^**= -- augmented assignment for ^**
- ^= -- augmented assignment for ^
- ^^= -- augmented assignment for ^^
- _= -- augmented assignment for _
- |-= -- augmented assignment for |-
- |= -- augmented assignment for |
- |_= -- augmented assignment for |_
- ||= -- augmented assignment for ||

- precedence of operators
- operatorAttributes -- a hashtable with information about Macaulay2 operators