The PATH statement has the form
PATH(type) var,var,var
and declares the variables var to act as variables of the type type, except that they may have more than one possible value.
Where type is not specified, PATH(STRING) is the default.
A specification of the form PATH(INTEGER(5)) implies that each variable is to be an array of five integers, and the array as a whole may have more than one possible value, rather than its elements each independently having one or more possible values. PATH(INTEGER()) is also possible, indicating a one-dimensional array of arbitrary length, as well as PATH(MUTABLE). SETs and GROUPs of array, STRING, and MUTABLE types, on the other hand, need not be possible. (A declaration of the form
INTEGER X()
is not allowed, except for subroutine arguments; MUTABLE type is to be used instead. However, with PATHs, a variable dimension but a defined type can be useful to allow the PATH to be handled efficiently; PATH(MUTABLE) can pose problems.)
Many functions will operate on PATHs and sets, if it is possible to convert such an entity to an array and then back again; however, as PATHs, SETs, and GROUPs may contain enormous numbers of members, this is not always sensible. (an attempt to evaluate _LN(_R(2.0,3.0)) will cause an error; no attempt to exploit the fact that the natural log function is monotonic will be made.)