Python ‐ Functional Programming 1 - cunhapaulo/ReferenceCard GitHub Wiki
1. Funções de Alta Ordem (Higher-Order Functions)
Funções que recebem outras funções como argumento ou retornam funções.
Exemplo:
def aplicar_funcao(f, valor):
return f(valor)
def quadrado(x):
return x ** 2
resultado = aplicar_funcao(quadrado, 5)
print(resultado) # Saída: 25
2. Funções Anônimas (Lambda)
Funções curtas e sem nome, úteis para operações rápidas.
Exemplo:
dobro = lambda x: x * 2
print(dobro(4)) # Saída: 8
3. Mapeamento de Funções (map)
Aplica uma função a todos os elementos de um iterável.
Exemplo:
numeros = [1, 2, 3, 4]
quadrados = list(map(lambda x: x ** 2, numeros))
print(quadrados) # Saída: [1, 4, 9, 16]
4. Filtragem de Dados (filter)
Filtra elementos de um iterável com base em uma condição.
Exemplo:
numeros = [1, 2, 3, 4, 5, 6]
pares = list(filter(lambda x: x % 2 == 0, numeros))
print(pares) # Saída: [2, 4, 6]
5. Redução de Valores (reduce)
Reduz um iterável a um único valor aplicando uma função cumulativa.
Exemplo:
from functools import reduce
numeros = [1, 2, 3, 4, 5]
soma = reduce(lambda x, y: x + y, numeros)
print(soma) # Saída: 15
6. Compreensão de Listas (List Comprehension)
Forma concisa de criar listas aplicando funções e filtros.
Exemplo:
quadrados = [x ** 2 for x in range(5)]
print(quadrados) # Saída: [0, 1, 4, 9, 16]
7. Imutabilidade com Tuplas
Manter os dados imutáveis é um princípio importante da programação funcional.
Exemplo:
tupla = (1, 2, 3)
# tupla[0] = 10 # Isso geraria um erro, pois tuplas são imutáveis
print(tupla) # Saída: (1, 2, 3)
8. Funções Recursivas
Funções que chamam a si mesmas, útil para resolver problemas indutivos.
Exemplo:
def fatorial(n):
return 1 if n == 0 else n * fatorial(n - 1)
print(fatorial(5)) # Saída: 120
9. Funções Puras
Funções que sempre retornam o mesmo resultado para os mesmos inputs e não têm efeitos colaterais.
Exemplo:
def soma(a, b):
return a + b # Não altera variáveis externas, logo é pura
print(soma(3, 4)) # Saída: 7
Essas são algumas das principais funcionalidades da programação funcional em Python. Esse paradigma ajuda a tornar o código mais conciso, modular e fácil de testar. 🚀