STDLIB: Add some helper modules for tuples.

This commit is contained in:
Jeremy Wall 2019-01-09 22:25:11 -06:00
parent d989e47706
commit db809fad97
2 changed files with 32 additions and 0 deletions

12
std/tests/tuples_test.ucg Normal file
View File

@ -0,0 +1,12 @@
import "../tuples.ucg" as tpl;
import "../testing.ucg" as t;
assert t.asserts{}.equal{
left = tpl.fields{tpl={foo=1, bar=2}}.result,
right = ["foo", "bar"],
};
assert t.asserts{}.equal{
left = tpl.values{tpl={foo=1, bar=2}}.result,
right = [1, 2],
};

20
std/tuples.ucg Normal file
View File

@ -0,0 +1,20 @@
let fields = module{
tpl = NULL,
} => {
let reducer = macro(acc, field, value) => {
result = acc + [field],
};
let result = reduce reducer.result [], (mod.tpl);
};
let values = module{
tpl = NULL,
} => {
let reducer = macro(acc, field, value) => {
result = acc + [value],
};
let result = reduce reducer.result [], (mod.tpl);
};