Reference list of syntax elements ================================= Space and new line characters (actually all characters identified as white spaces by isspace()) are lexical separators. +----------+-----------+---------+---------------------------------------------+ | Element | Usage | Returns | Meaning | +----------+-----------+---------+---------------------------------------------+ | a | a | a | Variable a. the regular expression | | | | | [a-zA-Z_][a-zA-Z0-9_]* applies to names. | +----------+-----------+---------+---------------------------------------------+ | v | v | v | Temporary object of value v. It is unnamed | | | | | and exists only within the expression, | | | | | which is ended by ), ], , ; or ,. | | | | | Values can be integers ([0-9]+), rationals | | | | | (([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)), or | | | | | matrices, described with operator []. | | | | | Values can be used wherever a variable is | | | | | used except as the lvalue of an assignment. | | | | | A value is considered to exist when used. | +----------+-----------+---------+---------------------------------------------+ | = | a = b | a | Store the value of b in a. b must exist. a | | | | | is created if it didn't exist. | +----------+-----------+---------+---------------------------------------------+ | + | a + b | a + b | Create a temporary object of value a + b. a | | - | a + b | a - b | and b must exist. The same applies to | | | | | a - b. If both a and b are integers, the | | | | | result is an integer. If one of them is an | | | | | integer or a rational and the other is a | | | | | rational, the result is a rational. If one | | | | | of them is a matrix, the result is a | | | | | matrix. | +----------+-----------+---------+---------------------------------------------+ | + | +a | a | Create a temporary object of value a or -a. | | - | -a | -a | a must exist. | +----------+-----------+---------+---------------------------------------------+ | * | a * b | a * b | Create a temporary object of value a * b. a | | | | | and b must exist. The same rules as for the | | | | | + and - operators apply concerning the type | | | | | of the result. | +----------+-----------+---------+---------------------------------------------+ | / | a / b | a / b | Create a temporary object of value a / b. a | | | | | and b must exist. If a and b are integers | | | | | or rationals (possibly mixing the two | | | | | types), the result is a rational. If a is a | | | | | matrix, the result is a matrix. It is not | | | | | possible to divide by a matrix. | +----------+-----------+---------+---------------------------------------------+ | += | a += b | a | a = a + b | | -= | a -= b | a | a = a - b | | *= | a *= b | a | a = a * b | | /= | a /= b | a | a = a / b | | | | | All comments concerning operators =, +, -, | | | | | * and / apply. | +----------+-----------+---------+---------------------------------------------+ | () | f(args) | f(args) | Call builtin function f with args. The | | | | | result is a temporary object. Function | | | | | names follow the same restrictions as | | | | | variable names. Parameters are separated | | | | | by commas. | +----------+-----------+---------+---------------------------------------------+ | () | (expr) | expr | Evaluate an expression and return the value | | | | | of the expression, which may be a temporary | | | | | object or a variable. | +----------+-----------+---------+---------------------------------------------+ | [] | [vals] | [vals] | Create a temporary matrix object. Rows are | | | | | separated by ; whereas values are separated | | | | | by ,. Values can only be rationals. Integer | | | | | values will be converted automatically. | | | | | Example : a = [1, 2; 3, 4] creates a 2x2 | | | | | square matrix of value | | | | | (1 2) | | | | | (3 4) | +----------+-----------+---------+---------------------------------------------+ | , | expr, | N/A | When not used as parameter separator or | | ; | expr; | N/A | value/row separator, these operators | | | | | are expression separators. ; prevents | | | | | result to be displayed. | +----------+-----------+---------+---------------------------------------------+