Funções como argumentos e algumas ideias de Programação Funcional
Usandomap(),reduce()e outras funções que recebem funções como argumentos
Pode passar despercebido no começo do aprendizado da linguagem Python que as funções embutidas, que já vem com a linguagem, bem com as que definimos ou até importamos, são também "objetos", são "valores" e podem ser passadas como argumentos na chamada de outras funções.
Uma estratégia muito legal que depende disso é a função map() do Python (que é diferente da função map() do Processing, temos as duas ao mesmo tempo, e isso é meio estranho...).
Funções anônimas com a palavra chave lambda
A palavra chave lambda permite uma forma abreviada de definir uma função, com algumas restrições, tem que ser um corpo em uma só expressão (não pode ter várias linhas). Como ela é possível criar funções sem nome no Python, que são úteis justamente quando precisamos de uma pequena função para passar como argumento de outra função!
# esta definição de função normal
def ultima_letra(palavra):
return palavra[-1]
# pode ser reescrita assim:
ultima_letra = lambda p : p[-1]
def draw():
formas = [lambda x, y, lado: rect(x - lado / 2, y - lado / 2, lado, lado),
lambda x, y, lado: ellipse(x, y, lado, lado/2)
]
for func in formas:
func(100, 100, 100)
Funções como argumentos e algumas ideias de Programação Funcional
Usando
map()
,reduce()
e outras funções que recebem funções como argumentosPode passar despercebido no começo do aprendizado da linguagem Python que as funções embutidas, que já vem com a linguagem, bem com as que definimos ou até importamos, são também "objetos", são "valores" e podem ser passadas como argumentos na chamada de outras funções.
Uma estratégia muito legal que depende disso é a função
map()
do Python (que é diferente da funçãomap()
do Processing, temos as duas ao mesmo tempo, e isso é meio estranho...).Funções anônimas com a palavra chave
lambda
A palavra chave
lambda
permite uma forma abreviada de definir uma função, com algumas restrições, tem que ser um corpo em uma só expressão (não pode ter várias linhas). Como ela é possível criar funções sem nome no Python, que são úteis justamente quando precisamos de uma pequena função para passar como argumento de outra função!Listas e dicionários de funções