Logo

Programming-Idioms

  • Java
  • Js

Idiom #31 Recursive factorial (simple)

Create the recursive function f which returns the factorial of the non-negative integer i, calculated from f(i-1)

function f(i) {
   return i<2 ? 1 : i * f(i-1);
}
const f = i => i === 0 ? 1 : i * f(i-1)
int f(int i) {
    if (i == 0)
        return 1;
    else
        return i * f(i - 1);
}

Warnings :
- type int quickly overflows
- high number of recursive calls may cause a stack overflow
- also, f is not tail-recursive
function F (I : Natural) return Natural is (if I < 2 then 1 else I * F (I - 1));

New implementation...
< >
programming-idioms.org