Click here to load reader
Upload
fernando-ferreira-passe
View
16
Download
9
Embed Size (px)
DESCRIPTION
Informações sobre o paradigma funcional
Citation preview
Nome: Fernando Ferreira Passe
Matrícula: 77459
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 consequê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 parâmetros 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: otimização);
Concorrência explorada de forma natural;
Entretanto, como “O mundo não é funcional !” também são encontradas algumas
dificuldades como Implementações ineficientes e Mecanismos primitivos de E/S e
formatação.
As linguagens funcionais são naturalmente recursivas e implementam de forma mais
rápida o conceito de recursão. Este fato dependendo do contexto podem torná-las mais
eficientes que as linguagens imperativas para alguns problemas.
Algumas características
as expressões são a representação exata da informação;
as expressões podem ser associadas a nomes;
todos os nomes que em uma expressão tem um valor único e imutável;
os valores dependem dos valores das sub-expressões que as constituem;
não permite efeito colateral em funções, a linguagem oferece transparência
referencial.
Vantagens
mais eficiente que as linguagens imperativas para cálculo recursivo;
transparência referencial;
grande flexibilidade, capacidade de abstração e modularização.
Desvantagens
ilegibilidade do código;
os programas podem ser menos eficiente.
Principais linguagens
Lisp
ML
Miranda
Haskell
Um bom exemplo de programa que utiliza em que podemos utilizar o paradigma funcional é na
implementação de uma função que calcula a sequência de Fibonacci utilizando recursão,
característica a qual faz parte deste tipo de paradigma.
Quem usa
Empresas como Twitter e Foursquare, utilizam uma linguagem chamada Scala que une
o lado bom da programação orientada a objetos como as vantagens da programação
funcional. Assim é possível fazer uso de todos os melhores recursos disponíveis em
ambos os paradigmas.