fibonacci(n) := fibonacciHelper(0, 1, n); fibonacciHelper(prev, next, n) := prev when n < 1 else next when n = 1 else fibonacciHelper(next, next + prev, n - 1);