mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-22 18:19:54 -04:00
86 lines
1.9 KiB
Markdown
86 lines
1.9 KiB
Markdown
+++
|
|
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"]];
|
|
``` |