Each formula definition file is read and compiled. The standard input is then read, expressions are evaluated and results are sent to the standard output. Expressions can be grouped with parentheses. Each result is assigned a number, which can be used in future expressions. A dollar sign by itself may be used for the previous result.
All values are double precision real.
In addition, variables and functions can be defined by the user. Function names can be passed as arguments. Recursive functions can be defined using calls to the defined function or other functions calling the defined function. Constant expressions are evaluated only once, the first time they are used. This avoids repeated evaluation of expressions whose values never change.