# operators

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
• := -- assignment of method or new local variable
• <- -- assignment with left side evaluated

#### comparison of objects

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

#### predicates

• and -- conjunction
• or -- disjunction
• not -- negation

#### functions

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

#### subscripting and object access

• _ -- 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

#### arithmetic operators

• ! -- 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

#### miscellaneous operators

• .. -- 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
• |- -- a binary operator
• <==> -- a binary operator
• ===> -- a binary operator
• ==> -- a binary operator
• <=== -- a unary and binary operator
• <== -- a unary and binary operator

#### built in operators

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