Lists are ordered collections of objects of any type. Lists are entered as a sequence of objects enclosed in curly braces {
and }
. The syntax rules of each individual object still apply when they are within a list.
Lists can contain any number of items, including none, therefore the empty list { }
is valid and can be used. Items can be repeated within a list, and the order in which items are inserted is preserved unless the order is intentionally changed, for example using the SORT
command.
In most cases, commands will accept a list instead of a single argument and will proceed according to the Parallel Processing with Lists section. For example, lists can be used to quickly apply the same operation to more than one value:
2: { 1 2 3 } 1: 1 …………………………………………………………………………………… +
will result in adding 1
to each element on the list: { 2 3 4 }
.
There's operations that are exclusive to lists, for example the command ADD
will concatenate two lists, or append 1 element at the end of the list.
2: { 1 2 3 } 1: 1 …………………………………………………………………………………… ADD
will result in { 1 2 3 1 }
and
2: { 1 2 3 } 1: { 4 5 6 } …………………………………………………………………………………… ADD
will result in { 1 2 3 4 5 6 }
Other common commands that operate on lists are:
→LIST
: Creates a list from loose objects in the stackLIST→
: Split a list into individual objects in the stackSORT
: Sort the elements of a listREVLIST
: Reverses the order of a list
Elements in a list can be referred to by a numeric index. The index starts at 1
for the first element of the list. To get an element from a list, the GET
command is used:
2: { 11 12 13 } 1: 2 …………………………………………………………………………………… GET
will result in 12
.
Replacing an element is done via the PUT
command:
3: { 11 12 13 } 2: 2 1: 3 …………………………………………………………………………………… PUT
will result in { 11 3 13 }
because the object 3
replaced the object at index 2
Elements of a list can also be accessed from within algebraic expression (read-only) by giving the list a name (store the list in a variable using STO
or LSTO
) and then including the index in parenthesis, much like a mathematical function.
For example, assuming the list { 11 12 13 }
was stored in variable L
, evaluating 'L(2)+10'
will result in 22
as expected.