Arrays and Vectors

Work with fixed and dynamic collections in Linea

Overview

Linea supports two types of collections: Arrays (fixed-size) and Vectors (dynamic). Both are fundamental to writing Linea programs.

Arrays (Fixed-Size)

Declaration

var arr @ [int] = [1, 2, 3, 4, 5]
var names @ [str] = ["Alice", "Bob", "Charlie"]

Indexing

Access elements using zero-based indices:

var first @ int = arr[0]    // 1
var second @ int = arr[1]   // 2
var last @ int = arr[4]     // 5

Modification

var arr @ [int] = [1, 2, 3]
arr[0] = 10  // Update first element
arr[2] = 30  // Update last element

Length

var arr @ [int] = [10, 20, 30]
var size @ int = len(arr)  // 3

Vectors (Dynamic Arrays)

Declaration

var vec @ Vector<int> = [1, 2, 3]

Push Operations

var vec @ Vector<int> = [1, 2]
vec.push(3)  // Add element
vec.push(4)

Pop Operations

var vec @ Vector<int> = [1, 2, 3]
var last @ int = vec.pop()  // Remove and return last element

Multi-Dimensional Arrays

2D Arrays (Matrices)

var matrix @ [[int]] = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

var element @ int = matrix[1][2]  // 6

3D Arrays (Tensors)

var tensor @ [[[int]]] = [
    [[1, 2], [3, 4]],
    [[5, 6], [7, 8]]
]

var val @ int = tensor[1][0][1]  // 6

Iteration

For Loop with Range

var arr @ [int] = [10, 20, 30]
for i from 0~2 {
    display arr[i]
}

Matrix Iteration

var matrix @ [[int]] = [[1, 2], [3, 4]]
for i from 0~1 {
    for j from 0~1 {
        display matrix[i][j]
    }
}

Common Operations

Sum of Array Elements

var arr @ [int] = [1, 2, 3, 4, 5]
var sum @ int = 0
for i from 0~4 {
    sum = sum + arr[i]
}
display sum  // 15

Find Maximum Element

var arr @ [int] = [3, 7, 2, 9, 1]
var max @ int = arr[0]
for i from 1~4 {
    if arr[i] > max {
        max = arr[i]
    }
}
display max  // 9

Best Practices