Paradigma funcional
Paradigmas são modelos padrões ou estilos de programação suportados por linguagens que agrupam certas características comuns. A classificação de linguagens em paradigmas é uma conseqüência de decisões de projeto que têm impacto na forma segundo a qual uma aplicação real é modelada do ponto de vista computacional.
O Paradigma funcional consiste em desenvolver funções que solucionam um determinado problema. Tais funções obedecem aos princípios matemáticos, embora nem sempre possam ser consideradas funções totais.
A Programação funcional é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Este método enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa.
Uma função, neste sentido, pode ter ou não ter parametros e um simples valor de retorno. Os parâmetros são os valores de entrada da função, e o valor de retorno é o resultado da função.
A característica predominante da programação funcional é que o significado de uma expressão é o seu valor, e o papel do computador é obtê-lo. Nas linguagens funcionais as funções são entidades de 1ª Classe e podem ser usadas como parâmetros, retornadas como resultado e até mesmo armazenadas em estruturas.
A Linguagem de programação funcional tem sido mais usadas academicamente que no desenvolvimento comercial de software. Entretanto, algumas linguagens notáveis usadas na indústria e no comércio incluem Erlang(aplicações concorrentes), R (estatística), Mathematica (matemática simbólica) Je K (análise financeira) e XSLT. Importantes influências na programação funcional foram o cálculo lambda, as linguagens de programação APL e Lisp, e mais recentemente ML, Haskell, OCaml e F#. O paradigma funcional possui algumas vantagens em relação aos outros paradigmas, destacando-se:
Manipulação de programas mais simples:
- Prova de propriedades
- Transformação (exemplo: