python - programação funcional
DESCRIPTION
Introdução ao uso de Python como linguagem de programação funcional.TRANSCRIPT
por Fábio Cerqueira
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.
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.
Usando lambdaExemplos do uso de funções lambda comparando com sua forma tradicional.
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:
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.
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:
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:
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.
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
ExemplosGerando o fractal conjunto de mandelbrot modo texto.
Alguém entende? O.o
Conjunto de MandelbrotResultado do exemplo anterior