A Set Definition is defined as any Definition whose expression is a set of values, defined within square brackets. Constant sets are created as a set of explicitly declared constant values that must be declared within square brackets, whether that set is defined as a separate definition or simply included in-line in another expression. All the constants must be of the same type.
SetInts := [1,2,3,4,5]; // an INTEGER set with 5 elements SetReals := [1.5,2.0,3.3,4.2,5.0]; // a REAL set with 5 elements SetStatusCodes := ['A','B','C','D','E']; // a STRING set with 5 elements
The elements in any explicitly declared set can also be composed of arbitrary expressions. All the expressions must result in the same type and must be constant expressions.
SetExp := [1,2+3,45,SomeIntegerDefinition,7*3]; // an INTEGER set with 5 elements
Declared Sets can contain definitions and expressions as well as constants as long as all the elements are of the same result type. For example:
StateCapitol(STRING2 state) := CASE(state, 'FL' => 'Tallahassee', 'Unknown'); SetFloridaCities := ['Orlando', StateCapitol('FL'), 'Boca '+'Raton', person[1].per_full_city];
Set Definitions can also be defined using the SET function (which see). Sets defined this way may be used like any other set.
SetSomeField := SET(SomeFile, SomeField); // a set of SomeField values
Sets can also contain datasets for use with those functions (such as: MERGE, JOIN, MERGEJOIN, or GRAPH) that require sets of datsets as input parameters.
SetDS := [ds1, ds2, ds3]; // a set of datasets
You can construct a DATASET from a SET.
SET OF STRING s := ['Jim','Bob','Richard','Tom']; DATASET(s,{STRING txt});