-
Notifications
You must be signed in to change notification settings - Fork 0
Lists
Bill Hails edited this page Dec 7, 2023
·
15 revisions
Lists are immutable. All the list operators make and return copies if necessary.
A list is written between [
and ]
with commas as separators. For example:
[5 + 5, 12]; // [10, 12]
The empty list is written []
and pronounced "null".
There are a few list operators, namely:
Creates a new list by prepending its lhs to its rhs (which must be a list of the same type):
12 @ [13, 14];
is [12, 13, 14]
, but
true @ [13, 14]
is a type error: bool != int
. See Typedef for ways to create lists of mixed type.
Creates a new list by making a copy of the lhs with the rhs appended:
[12, 13] @@ [14, 15]; // [12, 13, 14, 15]
@
and @@
are both right-associative.
Returns the first element of the list:
<[1, 2, 3]; // 1
Returns all but the first element of the list:
>[1, 2, 3]; // [2, 3]
It is a run-time error to take the head or tail of an empty list.
CEKF(s) a.k.a. F Natural a.k.a F♮