Write 8 essentially diferent functions that compute the factorial of a natural number in Haskell. You can use recursion, final recursion, no recursion, guards, if then else, map, folds, infinite lists...
Specification
You should define the following functions:
Input
fact1 6 fact2 6 fact3 6 fact4 6 fact5 6 fact6 6 fact7 6 fact8 6 fact1 20
Output
720 720 720 720 720 720 720 720 2432902008176640000