Mecanismo básico de computação é a aplicação de funções a argumentos
Uma linguagem que suporte esta forma de programação diz-se funcional
É um estilo de programação declarativo, em que um programa é um conjunto de declarações que descrevem a relação entre input e output) // Pelo contrário, estilo imperativo em que o programa é uma sequência de instruções que vai alterando o estado, o valor das variáveis.
Função fatorial na linguagem matemática : 0! = 1 // n! = n . (n-1)!
Haskell (uma linguagem declarativa)
fact 0 = 1
fact n = n * fact (n-1)
int factorial(int n)
{ int i, r;
i = 1;
r = 1;
while (1<=n) {
r = r*i;
i = i+1; }
return r;
}