mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-21 18:10:42 -04:00
1.9 KiB
1.9 KiB
+++ title = "List Operations" weight = 1 sort_by = "weight" in_search_index = true +++
The UCG list modules can be imported like so let l = import "std/lists.ucg";
It has a number of useful operations.
reverse
The reverse module reverses a list. It has a single required parameter:
list
the list to reverse.
let l = import "std/lists.ucg";
l.reverse{list=[1, 2, 3]} == [3, 2, 1];
str_join
The str_join module joins a list with the string representation of each element. It has two parameters:
list
which is required. The list to reverse.sep
which is optional and defines the separater to use when joining the elements. Defaults to a single space
let l = import "std/lists.ucg";
l.str_join{
sep=" ",
list=[1, 2, 3]
} == "1,2,3";
len
The len function returns the length of a list. It has a single required parameter.
list
The list to reverse.
let l = import "std/lists.ucg";
l.len{list=[0, 1, 2, 3]} == 4;
head and tail
The tail
function returns the tail of a list minus it's head.
let l = import "std/lists.ucg";
let tail = l.tail([0,1,2,3]);
tail == [1,2,3];
The head
function returns the head of the list as a list of one item.
let l = import "std/lists.ucg";
let hd = l.head([0,1,2,3]);
tail == [0];
enumerate
The enumerate module enumerates the elements of a list. It has three parameters.
list
which is required and is the list to enumerate.start
which is optional and defines the start number of the enumeration. (defaults to 0)step
which is optional and defines the step amount for the enumeration. (defaults to 1)
let l = import "std/lists.ucg";
// with defaults
l.enumerate{list=[1, 2, 3]} == [[0, 1], [1, 2], [3, 4]];
// With all parameters
l.enumerate{
start=1,
step=2,
list=["foo", "bar", "foobar"],
} == [[1, "foo"], [3, "bar"], [5, "foobar"]];