REDUCE

7.25 Declaring New Prefix Operators

The user may add new prefix operators to the system by using the declaration operator. For example:

        operator h,g1,arctan;

adds the prefix operators h, g1 and arctan to the system.

This allows symbols like h(w), h(x,y,z), g1(p+q), arctan(u/v) to be used in expressions, but no meaning or properties of the operator are implied. The same operator symbol can be used equally well as a 0-, 1-, 2-, 3-, etc.-place operator.

To give a meaning to an operator symbol, or express some of its properties, let statements can be used, or the operator can be given a definition as a procedure.

If the user forgets to declare an identifier as an operator, the system will prompt the user to do so in interactive mode, or do it automatically in non-interactive mode. A diagnostic message will also be printed if an identifier is declared operator more than once.

Operators once declared are global in scope, and so can then be referenced anywhere in the program. In other words, a declaration within a block (or a procedure) does not limit the scope of the operator to that block, nor does the operator go away on exiting the block (use clear instead for this purpose).

An operator declared print_indexed has its arguments displayed as indices, e.g. after print_indexed a; the operator value a(i,2) is displayed as \(a_{i,2}\). You can declare several operators together to be indexed, e.g.

        print_indexed b, c;

and remove indexed declarations using print_noindexed.


Hosted by Download REDUCE Powered by MathJax