32 lines
710 B
Plaintext
32 lines
710 B
Plaintext
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) => {
|
|
let storage =
|
|
switch (p) {
|
|
| [] => storage
|
|
| [hd, ...tl] => (storage[0] + hd, tl)
|
|
};
|
|
([]: list(operation), storage);
|
|
};
|
|
|
|
let main = (x: (param, storage)) => main2(x[0],x[1]);
|
|
|
|
let fold_op = (s: list(int)): int => {
|
|
let aggregate = (prec_cur: (int, int)) => prec_cur[0] + prec_cur[1];
|
|
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);
|
|
};
|