Next: Compact Pointer Lists, Previous: Ranges, Up: Data Classes [Contents][Index]
A compact list (clist
) is a collection of arbitrary values
or variables of arbitrary classes and data types. Any combination of
data classes and types can be put in a compact list. A compact list is
a restricted version of a full list (Lists). Any list without
keywords is automatically transformed into a compact list. A compact
list is created by listing the elements, separated by commas and
enclosed in curly braces. For example,
x = { [22, 12, 3.0], 'computers can be fun', (6:23) } y = { 'Alpha Centauri', 4.3, 'lightyears' }
defines two compact lists. List x
combines a float
array
(Arrays), a string
(Strings), and a
range
expression (Ranges), and list y
combines a
string
, a scalar
(Scalars), and another
string
.
You can specify a compact list without any elements, as {}
.
One can combine different compact lists and other elements into a single compact list, or into a compact list of lists and other things. Concatenation using curly braces ({}) preserves the structure of all concatenated elements, whereas concatenation using square brackets ([]) removes the outermost grouping from compact lists, similar to how array concatenation works.
For instance,
q = [ x, y ] q = { [22, 12, 3.0], 'computers can be fun', (6:23), 'Alpha Centauri', 4.3, 'lightyears' }
are equivalent definitions of a clist
with all elements of
x
and all elements of y
as its elements. In contrast to
this,
u = { x, y }
defines a compact list with just two elements: The first element is
compact list x
, and the second element is compact list y
.
One refers to a particular element of a compact list by subscript. For
example, q(1)
, and u(0)(1)
both refer to the string
'computers can be fun'
. One can extract more than one element
from a compact list using subscripts, just as for arrays (Arrays).
The subscripts may be scalars, ranges, or arrays of indices.
Lists can be used to specify arbitrary number of subscripts to functions or expressions. Lists of Subscripts.
Next: Compact Pointer Lists, Previous: Ranges, Up: Data Classes [Contents][Index]