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