Definition: func Name(arg1, ..., &outVar, ...) { ... } — Inputs are values; output params must be assignable variables passed with &.
Defines a runtime function. You can return a value with return expr; or use output parameters (or both).
func abs(x) {
if (x >= 0) return x;
return -x;
}
func clamp(x, lo, hi, &out_val) {
if (x < lo) { out_val = lo; return; }
if (x > hi) { out_val = hi; return; }
out_val = x;
return;
}
v = abs(a);
clamp(a, 0, 100, &b);