python - programação funcional

12
por Fábio Cerqueira

Upload: fabiocerqueira

Post on 17-Dec-2014

4.909 views

Category:

Technology


3 download

DESCRIPTION

Introdução ao uso de Python como linguagem de programação funcional.

TRANSCRIPT

Page 1: Python - Programação funcional

por Fábio Cerqueira

Page 2: Python - Programação funcional

Python FuncionalPython possibilita, além dos paradigmas mais tradicionais, trabalhar com oparadigma de programação funcional.

•Vantagens:• Redução do código-fonte• Maior velocidade• Em alguns casos facilita implementações

• Desvantagens:• Maior possibilidade de gerar códigos obscuros • Não é uma paradigma muito difundido

A abordagem usada neste curso para programação funcional empython não tem intenção de aprofundar no assunto, mas apenas mostraralgumas ferramentas que a linguagem apresenta para seu uso.

Page 3: Python - Programação funcional

Expressões lambdaExpressões lambdas são funções que não precisam ser nomeadas, funções anônimas.

Sintaxe:

lambda arg1,arg2,arg3...,argN: expressão

As expressões lambda são úteis quando usadas com as funções filter,map,reduce do python.

Page 4: Python - Programação funcional

Usando lambdaExemplos do uso de funções lambda comparando com sua forma tradicional.

Page 5: Python - Programação funcional

mapA função map é usada quando precisa-se aplicar uma determinada função em todos os itens de uma ou mais sequência.

map(function, sequence[, sequence, ...]) -> list

Exemplo:

Page 6: Python - Programação funcional

map completoA função map aceita mais uma sequência. Veja os exemplos:

Note que como pow recebe no mínimo dois parâmetros quando temospassar o map com pow em uma lista deu erro.

Page 7: Python - Programação funcional

reduceA reduce aplica uma função sobre uma sequência e vai acumulando o valor de retorno da função a partir de um valor inicial.Sintaxe:reduce(function, sequence[, initial]) -> valueExemplos:

Page 8: Python - Programação funcional

filterO filter opera a função passa sobre a lista, gerando uma outras lista quando o retorno da função for verdadeiro.Sintaxe:filter(function or None, sequence) -> list, tuple, or stringExemplos:

Page 9: Python - Programação funcional

zipA zip retorna uma lista de tuplas associando para cada item das sequências passadas como parâmetro.Sintaxe:zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]Exemplos:

Note que no primeiro exemplo a quantidade de tuplas na lista de retorno é a quantidade de elementos da menor sequência.

Page 10: Python - Programação funcional

ExemplosAlguns exemplos do uso das ferramentas funcionais do python.

• Gerar lista dos primos entre 2 e 50

• Geras os 10 primeiros valores da sequência de fibonnaci

Page 11: Python - Programação funcional

ExemplosGerando o fractal conjunto de mandelbrot modo texto.

Alguém entende? O.o

Page 12: Python - Programação funcional

Conjunto de MandelbrotResultado do exemplo anterior