mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-22 18:19:54 -04:00
STDLIB: Add some helper modules for tuples.
This commit is contained in:
parent
d989e47706
commit
db809fad97
12
std/tests/tuples_test.ucg
Normal file
12
std/tests/tuples_test.ucg
Normal 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
20
std/tuples.ucg
Normal 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);
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user