Back to Index

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).

Example

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);