ligo/src/test/contracts/list.religo

32 lines
710 B
Plaintext
Raw Normal View History

2019-12-10 13:47:31 +00:00
type storage = (int, list(int));
type param = list(int);
let x: list(int) = [];
let y: list(int) = [3, 4, 5];
let z: list(int) = [2, ...y];
let main2 = (p: param, storage) => {
2019-12-10 13:47:31 +00:00
let storage =
switch (p) {
| [] => storage
| [hd, ...tl] => (storage[0] + hd, tl)
};
([]: list(operation), storage);
};
let main = (x: (param, storage)) => main2(x[0],x[1]);
2019-12-10 13:47:31 +00:00
let fold_op = (s: list(int)): int => {
let aggregate = (prec_cur: (int, int)) => prec_cur[0] + prec_cur[1];
2019-12-10 13:47:31 +00:00
List.fold(aggregate, s, 10);
};
let map_op = (s: list(int)): list(int) =>
List.map((cur: int) => cur + 1, s);
let iter_op = (s: list(int)): unit => {
let do_nothing = (z: int) => unit;
List.iter(do_nothing, s);
};