Paradigma de Programação Funcional
Links Relacionados: Linguagens de Programação
Introdução
O Paradigma de Programação Funcional trabalha na forma de avaliação de funções matemáticas, evitando estados ou dados mutáveis, em contraste com a programação imperativa, que enfatiza a mudança de estado do programa.
Funções podem ter parâmetros de entrada e um valor de retorno, caracterizado como o resultado da função.
Esse paradigma de programação teve fortes influências do Cálculo lambda e das linguagens de programação:
Como alguns exemplos notáveis de linguagens de programação funcionais que têm sido utilizadas academicamente e na indústria/comércio, podemos citar:
Contraste entre a Programação Funcional e a Programação Imperativa
Na programação estritamente funcional, não há alocação explícita de memória, nem declaração explícita de variáveis. Isso ocorre de forma automática quando a função é invocada.
A alocação de memória ocorre para criar espaço para os parâmetros e para o valor de retorno, e a declaração ocorre para copiar os parâmetros dentro deste espaço recém-alocado e para copiar o valor de retorno de volta para dentro da função que a chama. Os efeitos colaterais no cálculo da função são eliminados (Transparência Referencial).
A transparência referencial visa assegurar que o resultado da função será o mesmo para um dado conjunto de parâmetros não importando onde, ou quando, seja avaliada. Ela também facilita as tarefas de comprovar a correção do programa e automaticamente identificar computações independentes para execução paralela.
Na programação funcional os laços (da programação interativa) estão presentes na forma de recursividade. As funções recursivas invocam a si mesmas, permitindo que uma operação seja realizada várias vezes. Na verdade, isso prova que laços são equivalentes a um tipo especial de recursividade chamada recursividade reversa.