Diferença entre Programação Funcional e Programação Imperativa

Índice:

Diferença entre Programação Funcional e Programação Imperativa
Diferença entre Programação Funcional e Programação Imperativa

Vídeo: Diferença entre Programação Funcional e Programação Imperativa

Vídeo: Diferença entre Programação Funcional e Programação Imperativa
Vídeo: Programação Funcional // Dicionário do Programador 2024, Julho
Anonim

Key Difference – Programação Funcional vs Programação Imperativa

A principal diferença entre programação funcional e programação imperativa é que a programação funcional considera os cálculos como funções matemáticas e evita a mudança de estado e dados mutáveis, enquanto a programação imperativa usa as instruções que alteram o estado do programa.

Um paradigma de programação fornece um estilo de construção da estrutura e dos elementos de um programa de computador. Os paradigmas de programação ajudam a classificar as linguagens de programação com base em suas características. Uma linguagem de programação pode influenciar mais paradigmas. No paradigma orientado a objetos, o programa é estruturado usando objetos, e os objetos passam mensagens usando métodos. A programação lógica pode expressar a computação exclusivamente em termos de lógica matemática. Outros dois paradigmas de programação são a programação funcional e a programação imperativa. A programação funcional permite expressar computações como a avaliação de funções matemáticas. A programação imperativa fornece instruções que alteram explicitamente o estado da memória. Este artigo discute a diferença entre programação funcional e programação imperativa.

O que é Programação Funcional?

Programação Funcional é baseada em Matemática. O princípio chave por trás da programação funcional é que toda a computação é considerada como uma combinação de funções matemáticas separadas. Uma função matemática mapeia entradas para saídas. Suponha que exista uma função chamada f(x)=xx. O valor x 1 é mapeado para a saída 1. O valor x 2 é mapeado para a saída 4. O valor x 3 é mapeado para a saída 9 e assim por diante.

Diferença entre programação funcional e programação imperativa
Diferença entre programação funcional e programação imperativa

Figura 01: Exemplo de linguagem de programação funcional – Haskell

Na programação funcional, os padrões são considerados. As linguagens de programação funcional Haskell, usa o método abaixo para encontrar a soma dos números.

A função soma tem valores inteiros, e o resultado também será um inteiro. Pode ser escrito como soma: [int] -> int. A soma pode ser feita seguindo os padrões abaixo.

sum[n]=n, a soma de um número é o próprio número.

Se houver uma lista de números, ela pode ser escrita da seguinte forma. O n representa o primeiro número e ns representa os outros números

soma (n, ns)=n + soma ns.

Os padrões acima podem ser aplicados para encontrar a soma de três números que são 3, 4, 5.

3 + soma [4, 5]

3 + (4 + soma [5])

3+ 4 + 5=12

Uma função ou expressão tem efeitos colaterais se modifica algum estado fora de seu escopo ou tem uma interação observável com suas funções de chamada além do valor de retorno. A programação funcional minimiza esses efeitos colaterais. As mudanças de estado não dependem das entradas da função. É útil para entender o comportamento do programa. Uma desvantagem da programação funcional é que aprender programação funcional é mais difícil em comparação com a programação imperativa.

O que é Programação Imperativa?

A programação imperativa é um paradigma de programação que usa as instruções que alteram o estado de um programa. Ele se concentra em descrever como um programa opera. Linguagens de programação como Java, C e C são linguagens de programação imperativas. Ele fornece um procedimento passo a passo sobre o que fazer. Linguagens de programação imperativas contêm estruturas como if, else, while, for loops, classes, objetos e funções.

Diferença chave entre programação funcional e programação imperativa
Diferença chave entre programação funcional e programação imperativa

Figura 02: Exemplo de linguagem de programação Imperativa – Java

A soma de dez números pode ser encontrada em Java como segue. Em cada iteração, o valor i é adicionado à soma e atribuído à variável soma. Em cada iteração, o valor da soma continua sendo adicionado à soma calculada anteriormente.

int soma=0;

for (int i=0; i<=10; i++) {

soma=soma + i;

}

A programação imperativa é fácil de aprender, entender e depurar. É fácil encontrar o estado do programa devido ao uso de variáveis de estado. Algumas desvantagens são que ele pode tornar o código longo e também pode minimizar a escalabilidade.

Qual é a semelhança entre programação funcional e programação imperativa?

Tanto a Programação Funcional quanto a Programação Imperativa são paradigmas de programação

Qual é a diferença entre programação funcional e programação imperativa?

Programação Funcional vs Imperativa

Programação Funcional é um paradigma de programação que considera a computação como a avaliação de funções matemáticas e evita mudanças de estado e dados mutáveis. Programação Imperativa é um paradigma de programação que usa instruções que alteram o estado de um programa.
Estruturas
Programação Funcional contém chamadas de funções e funções de ordem superior. Programação Imperativa contém if, else, while, for loops, funções, classes e objetos.
Linguagens de Programação
Scala, Haskell e Lisp são linguagens de programação funcionais. C, C++, Java são linguagens de programação imperativas.
Foco
Programação Funcional foca no resultado final. Programação Imperativa se concentra em descrever como um programa funciona.
Simplicidade
Programação funcional é difícil. Programação imperativa é mais fácil.

Resumo – Programação Funcional vs Programação Imperativa

Um paradigma de programação fornece um estilo de construção da estrutura e dos elementos de um programa de computador. Programação Funcional e Programação Imperativa são duas delas. A diferença entre programação funcional e programação imperativa é que a programação funcional considera os cálculos como funções matemáticas e evita a mudança de estado e dados mutáveis, enquanto a programação imperativa usa as instruções que alteram o estado dos programas.

Recomendado: