ucg/std/functional.ucg

23 lines
406 B
Plaintext
Raw Normal View History

let maybe = module{
val = NULL,
} => {
let do = macro(op) => {
result = select (mod.val != NULL), NULL, {
true = op(mod.val).result,
}
};
};
let if = module{
test = false,
} => {
let do = macro(op, arg) => {
result = select mod.test, arg, {
true = op(arg).result,
},
};
};
let identity = macro(arg) => {
result = arg,
};