Esse nome PRT será alterado
Linguagem de programação em português para aprendizado do paradigma funcional
Recursividade é uma das características principais da linguagem funcional. Ela define que uma função pode chamar ela mesma quantas vezes forem necessárias, em linguagens funcionais essa estrutura substitui a utilização de laços de repetição, como for (para) e while (enquanto), das linguagens estruturadas.
Fatorial com laço de repetição em Java:
// Utilizando enquanto (while)
public int fatorial_enquanto(int n){
int resultado = 0;
while(n > 1){
resultado *= n--;
}
return resultado;
}
// Utilizando para (for)
public int fatorial_for(int n){
int resultado = 0;
for(int i = 2; i <= n; i++){
resultado *= i;
}
return resultado
}
// Utilizando recursão
public int fatorial_recursivo(int n) {
return (n > 1)
? n * fatorial_recursivo(n--)
: 1;
}
Fatorial recursivo em PRT:
# Ou usando casamento de padrões
fatorial(1) retorna 1
fatorial(n) retorna n * fatorial(n-1)