PARADIGMA FUNCIONAL
2º TAE
2_TAE_lingaugens_de_programação.pdf

Surgiu na década de 1960 devido a necessidade de
desenvolvidos da área de inteligência artificial e seus
subcampos.

Primeira linguagem de programação foi o LISP.

Paradigma funcional é baseado em funções matemáticas
mapeando entradas e saídas.

Um programa é um conjunto de funções.

Exemplos de linguagem funcionais: Shceme COMMON LISP, ML,
Haskel, Scala, Erlang.

Uma características do paradigma funcional é que a execução
de um programa ;e a avaliação de expressões matemáticas
que retornam e consomem valores.

Não existe manipulação de valores em memória, uma função
apenas define um valor, uma função não faz operações
sequenciais em memoria.

Dessa forma o paradigma funcional apenas avalia expressões
matemáticas e não controla estados, os dados são imutáveis.

No paradigma imperativo ocorre a mudança de estados
(variáveis em memória)

Na programação funcional não há alocação explicita de
memoria em nem declaração explicita de variáveis.

No modelo “puro” não conceito de variável.

Forma funcional é o conceito de funções que não mantes
estados e que recebem como parâmetro outras funções ou
valores e retornam funções ou valores.

Atualmente muitas linguagem de programação implementam o
paradigma funcional junto com outros paradigmas, como o
orientado a objetos ou estruturado.

Linguagens de programação imperativas(OO, estruturas) tem
sua implementação baseados na maquina de Turing.

Linguagem de programação funcional tem sua implementação
baseada no calculo lambda.

Definição de função

São escritas com um nome, seguido de uma listas de parâmetros e
uma expressão de mapeamento.
cubo(x) = x * x * x – onde x é um número real.

Função lambda

É a base para o paradigma funcional, é uma forma utilizada para
definir funções onde tem-se os parâmetros e o mapeamento. As
funções lambda não tem nome.
λ (x) x *x * x
PRÁTICA SHCEME

Acesse o endereço http://repl.it/languages/Scheme para utilizar
o interpretador do Scheme.

Um programa em Scheme é uma coleção de funções
EXPRESSÕES MATEMÁTICA
EXPRESSÃO LAMBDA
VARIÁVEIS DE EXPRESSÃO

Também conhecidas como variáveis vinculadas.

Essas variáveis nunca mudam o seu valor após ter sido vinculado
um valor a elas.
define (símbolo expressão)
VARIÁVEIS DE EXPRESSÃO
VARIÁVEIS DE EXPRESSÃO
VARIÁVEIS DE EXPRESSÃO
VARIÁVEIS DE EXPRESSÃO
EXPRESSÕES E CONTROLE DE FLUXO
(if(predicado expressão_entao
expressão_senao))
EXPRESSÕES E CONTROLE DE FLUXO
EXPRESSÕES E CONTROLE DE FLUXO
PYTHON

O Python implementa características do paradigma funcional.

Esse características não são puras, porem permite a escrita de
um código mais simples e eficiente.

Linguagens de programação como PHP, Ruby Java na versão 8
C# também permitem a implementação de alguns conceitos
do paradigma funcional.
EXPRESSÃO LAMBDA
lambda variável : expressão
EXPRESSÃO LAMBDA
EXPRESSÃO LAMBDA
EXPRESSÃO LAMBDA
MAP

Recebe como parâmetro uma lista de um função e aplica a
função a cada elemento da lista.
MAP
MAP
MAP
FILTER

Recebe como parâmetro uma lista e uma função e aplica a
função de forma a realizar um filtro na lista de acordo com a
função.
FILTER
EXERCÍCIOS
aula-09-exercícios.pdf
Download

Slides - Linguagens de Programação