Arrays
Vesper supports array literals and array indexing.
Array literals
An array is written as a comma-separated list inside square brackets.
let numbers = [1, 2, 3, 4];
Elements are expressions.
let a = 10;
let numbers = [a, a + 1, a + 2];
Typed arrays
An array type uses [type].
let numbers: [int] = [1, 2, 3];
let values: [float] = [1.0, 2.0, 3.0];
Indexing
let numbers: [int] = [10, 20, 30];
let first = numbers[0];
let second = numbers[1];
Nested arrays
Because array types are recursive, nested arrays can be represented.
let matrix: [[int]] = [
[1, 2],
[3, 4]
];
Array bounds checking and mutation semantics should be documented here as the array implementation evolves.