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

Diferença de chave - Funcional Programação vs Programação imperativa
 

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

Um paradigma de programação fornece um estilo de construção da estrutura e elementos de um programa de computador. Os paradigmas de programação ajudam a classificar 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 transmitem 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 programação funcional e 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 programação funcional e 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 programação funcional e programação imperativa
5. Comparação lado a lado - programação funcional versus programação imperativa em forma de tabela
6. Resumo

O que é programação funcional?

A programação funcional é baseada em matemática. O princípio chave por trás da programação funcional é que todo o cálculo é considerado 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) = 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, usam o método abaixo para encontrar a soma dos números.

A função soma possui valores inteiros, e o resultado também será um número 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 poderá 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 retornado. A programação funcional minimiza esses efeitos colaterais. As alterações de estado não dependem das entradas de função. É útil ao entender o comportamento do programa. Uma desvantagem da programação funcional é que o aprendizado da programação funcional é mais difícil comparado à 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, para 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 sum. Em cada iteração, o valor da soma continua sendo adicionado à soma calculada anteriormente.

int soma = 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 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?

  • Programação Funcional e 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 alterações de estado e dados mutáveis. Programação imperativa é um paradigma de programação que usa declarações que mudam o estado de um programa.
 Estruturas
Programação funcional contém chamadas de função e funções de ordem superior. Programação imperativa contém se, senão, enquanto, para loops, funções, classes e objetos.
Linguagens de programação
Scala, Haskell e Lisp são linguagens de programação funcional. C, C ++, Java são linguagens de programação imperativas.
 Foco
Programação funcional foca no resultado final. A programação imperativa se concentra em descrever como um programa opera.
Simplicidade
Programação funcional é difícil. Programação imperativa é mais fácil.

Resumo - Funcional Programação vs Programação imperativa

Um paradigma de programação fornece um estilo de construção da estrutura e elementos de um programa de computador. Programação funcional e programação imperativa são dois deles. 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 alterações de estado e dados mutáveis, enquanto a programação imperativa usa as instruções que alteram o estado dos programas..

Referência:

1. "Programação imperativa". Wikipedia, Wikimedia Foundation, 28 de março de 2018. Disponível aqui  
2. "Programação Funcional". Wikipedia, Wikimedia Foundation, 28 de março de 2018. Disponível aqui  
3.Computerphile. YouTube, YouTube, 30 de agosto de 2013. Disponível aqui 

Cortesia da imagem:

1.'Haskell Logo'By Haskell1965 - Obra própria, (CC BY-SA 3.0) via Commons Wikimedia 
Por Screenshots do Linux (CC BY 2.0) via Flickr