Skip to main content

Tuple

The tuple module provides tuple operations for the Crux programming language.

Installation

use new_tuple from "crux:tuple";

Functions

new_tuple

Creates a new tuple from an array.

let arr = [1, 2, 3]
let tup = new_tuple(arr)

Parameters:

  • array (Array): The array to convert

Returns: Tuple


Methods

is_empty

Checks if a tuple is empty.

let tup = new_tuple([1, 2, 3])
let empty = tup.is_empty() // false

Returns: Bool


contains

Checks if a tuple contains a value.

let tup = new_tuple([1, 2, 3])
let has_two = tup.contains(2) // true
let has_five = tup.contains(5) // false

Parameters:

  • value (Value): The value to search for

Returns: Bool


to_array

Converts a tuple to an array.

let tup = new_tuple([1, 2, 3])
let arr = tup.to_array() // [1, 2, 3]

Returns: Array


first

Gets the first element of a tuple.

let tup = new_tuple([1, 2, 3])
let first = tup.first() // Result(1)

Returns: Result<Value>

Errors: Cannot get first element of empty tuple.


last

Gets the last element of a tuple.

let tup = new_tuple([1, 2, 3])
let last = tup.last() // Result(3)

Returns: Result<Value>

Errors: Cannot get last element of empty tuple.


equals

Checks if two tuples are equal.

let tup1 = new_tuple([1, 2, 3])
let tup2 = new_tuple([1, 2, 3])
let tup3 = new_tuple([1, 2, 4])
let equal = tup1.equals(tup2) // true
let not_equal = tup1.equals(tup3) // false

Parameters:

  • other (Tuple): The tuple to compare

Returns: Bool


get

Gets an element from a tuple by index.

let tup = new_tuple([10, 20, 30])
let elem = tup.get(1) // Result(20)

Parameters:

  • index (Int): The index of the element

Returns: Result<Value>

Errors: Index out of bounds.


slice

Slices a tuple.

let tup = new_tuple([10, 20, 30, 40])
let sliced = tup.slice(1, 3) // [20, 30]

Parameters:

  • start (Int): Start index (inclusive)
  • end (Int): End index (exclusive)

Returns: Array<Value>

Errors: Invalid slice range.


index

Gets the index of a value in a tuple.

let tup = new_tuple([10, 20, 30])
let idx = tup.index(20) // Result(1)
let missing = tup.index(50) // Error: Value not found

Parameters:

  • value (Value): The value to search for

Returns: Result<Int>

Errors: Value not found.