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