up previous next
3.3.1 CoCoA Operators
In CoCoA there are 5 main types of operators: algebraic operators, relational operators, boolean operators, selection operators, and the range operator. There is also an n-ary operator >< for forming Cartesian products of lists and an operator :: used in defining rings.

The meaning of an operator depends on the types of its operands; the + in the expression A + B represents the sum of polynomials, or of ideals, or of matrices, etc. according to the type of A and B.

The multiplication symbol * can always be omitted. The expression F(E) is intrinsically ambiguous; it can be the variable F multiplied by the parenthesized expression E, or the application of the function F to the argument E. CoCoA always interprets this expression in the latter way. In the former case the user must separate F from the left parenthesis with a blank or an *.

The CoCoA operators are, from the highest to the lowest priority:
    []  .   (selection operators)
    ^  %
    +  -    (as unary operators)
    *  :  /
    +  -    (as binary operators)
    ..
    =  <>  <  <=  >  >=
    IsIn
    Not
    And
    OR
Operations with equal priority are performed from left to right. When in doubt, parentheses may be used to enforce a particular order of evaluation.

Furthermore there is the n-ary operator >< (made by using a greater than sign > and a less than sign <) for making Cartesian products of lists (see CartesianProduct, CartesianProductList ) and the operator :: for defining rings (see New Rings and Use ).