diff --git a/std/tests/tuples_test.ucg b/std/tests/tuples_test.ucg index 7ec9f03..b94cb52 100644 --- a/std/tests/tuples_test.ucg +++ b/std/tests/tuples_test.ucg @@ -14,4 +14,9 @@ assert t.equal{ assert t.equal{ left = tpl.iter{tpl={foo=1, bar=2}}.result, right = [["foo", 1], ["bar", 2]], +}; + +assert t.equal{ + left = tpl.strip_nulls{tpl={foo="bar", bar=NULL}}.result, + right = {foo="bar"}, }; \ No newline at end of file diff --git a/std/tuples.ucg b/std/tuples.ucg index a2d9b1f..54157a0 100644 --- a/std/tuples.ucg +++ b/std/tuples.ucg @@ -29,4 +29,14 @@ let iter = module{ }; let result = reduce reducer.result [], (mod.tpl); +}; + +let strip_nulls = module{ + tpl = NULL, +} => { + let filterer = macro(name, value) => { + result = value != NULL, + }; + + let result = filter filterer.result (mod.tpl); }; \ No newline at end of file