I don't think the author is seriously of the belief that C is a functional language. This is just a fun little example of writing C in a functional style.
int factorial(int x) { if (x > 1) return x * factorial(x-1); else return 1; }
int factorial(int x) { int result = 1; while (x > 1) result *= x--; return result; }