List
Lists are mutable in Andy C++.
let my_list = [1,2,3];
// Values inside a list can be changed
my_list[2] = 4;
// You can add elements to the end of a list
my_list.push(99);
// Remove and return the last element of the list
let element = my_list.pop();
Indexing
Lists, strings, and tuples also support negative indexes. Negative indexes count from the end.
let my_list = [1,2,3,4,5,6,7,8,9];
assert_eq(9, my_list[-1]);
Slicing
Use ranges to slice lists. Ranges can be inclusive or exclusive. Negative indices count from the end of the list.
let my_list = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
// Exclusive range: 3 to 6 (does not include index 6)
assert_eq([30, 40, 50], my_list[3..6]);
// Inclusive range: 3 to 6 (includes index 6)
assert_eq([30, 40, 50, 60], my_list[3..=6]);
// Negative indices: Counting from the end of the list
assert_eq([80, 90], my_list[-3..-1]);
Operators
| Operator | Function |
|---|---|
++ | Concatenation |
<> | Coerce operands into strings and concatenate |
in | Checks if an element is present in the list |
not in | Checks if an element is not present in the list |
== | Equality |
!= | Inequality |
> | Greater (lexicographically) |
< | Less (lexicographically) |
>= | Greater equals (lexicographically) |
<= | Less equals (lexicographically) |