Factorial - Iterative and Recursive Solutions

Haskell:
factorial:: Int -> Int
factorial n
  | n <= 1     = 1
  | otherwise  = n * factorial (n - 1)
Recursive C:
double
factorial(int n) {
    if (n <= 1)
        return 1;
    return n * factorial(n -1);
}
Iterative C:
double
factorial(int n) {
    int i;
    double product = 1;
    for (i = 1; i <= n; i++)
        product *= i;
    return product;
}

Index