Skip to content
Linguagem de programação em português para aprendizado do paradigma funcional
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
docs/diagrams
src
.babelrc
.gitignore
nodemon.json
package.json
readme.md
yarn-error.log
yarn.lock

readme.md

Esse nome PRT será alterado

Linguagem PRT

Linguagem de programação em português para aprendizado do paradigma funcional

Recursividade

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:

# Com IF
fatorial(n) retorna 
	se n > 1 então n * fatorial(n-1) 
			 senão 1

# Ou usando casamento de padrões
fatorial(n) retorna n * fatorial(n-1)
fatorial(1) retorna 1
You can’t perform that action at this time.