2

Click here to load reader

Paradigma Funcional

Embed Size (px)

DESCRIPTION

Informações sobre o paradigma funcional

Citation preview

Page 1: Paradigma Funcional

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;

Page 2: Paradigma Funcional

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.