factorial(n) := factorialHelper(1, n); factorialHelper(acc, n) := acc when n <= 0 else factorialHelper(acc * n, n-1);