Definitions

   The factorial of   0   (zero)   is defined as being   1   (unity).
   The   Factorial Function   of a positive integer,    n,    is defined as the product of the sequence:
                 n,   n-1,   n-2,   ...   1 



Task

Write a function to return the factorial of a number.

Solutions can be iterative or recursive.

Support for trapping negative    n    errors is optional.



Related task

   Primorial numbers


#include <order/interpreter.h>
 
#define ORDER_PP_DEF_8fac                     \
ORDER_PP_FN(8fn(8N,                           \
                8if(8less_eq(8N, 0),          \
                    1,                        \
                    8mul(8N, 8fac(8dec(8N))))))
 
ORDER_PP(8to_lit(8fac(8)))    // 40320