31
PARADIGMA FUNCIONAL

PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

Embed Size (px)

Citation preview

Page 1: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

PARADIGMA FUNCIONAL

Page 2: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

2º TAE2_TAE_lingaugens_de_programação.pdf

Page 3: 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.

Page 4: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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.

Page 5: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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.

Page 6: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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

Page 7: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

PRÁTICA SHCEME

Page 8: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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

Page 9: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÕES MATEMÁTICA

Page 10: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÃO LAMBDA

Page 11: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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)

Page 12: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

VARIÁVEIS DE EXPRESSÃO

Page 13: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

VARIÁVEIS DE EXPRESSÃO

Page 14: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

VARIÁVEIS DE EXPRESSÃO

Page 15: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

VARIÁVEIS DE EXPRESSÃO

Page 16: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÕES E CONTROLE DE FLUXO

(if(predicado expressão_entao expressão_senao))

Page 17: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÕES E CONTROLE DE FLUXO

Page 18: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÕES E CONTROLE DE FLUXO

Page 19: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

PYTHON

Page 20: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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.

Page 21: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÃO LAMBDA

lambda variável : expressão

Page 22: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÃO LAMBDA

Page 23: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÃO LAMBDA

Page 24: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXPRESSÃO LAMBDA

Page 25: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

MAP

Recebe como parâmetro uma lista de um função e aplica a função a cada elemento da lista.

Page 26: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

MAP

Page 27: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

MAP

Page 28: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

MAP

Page 29: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

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.

Page 30: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

FILTER

Page 31: PARADIGMA FUNCIONAL. 2º TAE 2_TAE_lingaugens_de_programação.pdf

EXERCÍCIOS aula-09-exercícios.pdf