Diferença Chave - Programação Funcional vs Programação Imperativa
A principal diferença entre a programação funcional e a 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 seus recursos. 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 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 cálculos 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 a programação funcional e a programação imperativa.
CONTEÚDO
1. Visão geral e principais diferenças
2. O que é programação funcional
3. O que é programação imperativa
4. Semelhanças entre a programação funcional e a programação imperativa
5. Comparação lado a lado - Programação funcional vs Programação imperativa na forma tabular
6. Resumo
O que é programação funcional?
A programação funcional é baseada na matemática. O princípio fundamental por trás da programação funcional é que toda a computação é considerada uma combinação de funções matemáticas separadas. Uma função matemática mapeia entradas em saídas. Suponha que haja uma função chamada f (x) = x * x. 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.
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 de soma possui 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.
soma [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 maneira. 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
Diz-se que uma função ou expressão tem efeitos colaterais se modificar algum estado fora de seu escopo ou tiver 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 de função. É útil para entender o comportamento do programa. Uma desvantagem da programação funcional é que aprender programação funcional é mais difícil do que 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. As linguagens de programação imperativas contêm estruturas como if, else, while, for loops, classes, objetos e funções.
Figura 02: Exemplo de linguagem de programação imperativa - Java
A soma de dez números pode ser encontrada em Java da seguinte maneira. Em cada iteração, o valor i é adicionado à soma e atribuído à variável soma. Em cada iteração, o valor da soma continua somando à soma calculada anteriormente.
soma int = 0;
para (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 pode tornar o código extenso e também minimizar a escalabilidade.
Qual é a semelhança entre a programação funcional e a programação imperativa?
Tanto a Programação Funcional quanto a Programação Imperativa são paradigmas de programação
Qual é a diferença entre a programação funcional e a programação imperativa?
Artigo Diff meio antes da tabela
Programação funcional versus programação imperativa |
|
A Programação Funcional é um paradigma de programação que considera a computação como a avaliação de funções matemáticas e evita a mudança de estado e dados mutáveis. | A Programação Imperativa é um paradigma de programação que usa instruções que alteram o estado de um programa. |
Estruturas | |
A programação funcional contém chamadas de função e funções de ordem superior. | A 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 | |
A programação funcional concentra-se no resultado final. | A Programação Imperativa concentra-se em descrever como um programa opera. |
Simplicidade | |
A programação funcional é difícil. | A 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. A Programação Funcional e a Programação Imperativa são duas delas. A diferença entre a programação funcional e a 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.