villares / material-aulas

Material para ensino introdutório de programação com Python em um contexto visual
https://abav.lugaralgum.com/material-aulas/
97 stars 70 forks source link

Falta material sobre estratégias de prog. funcional (lambda, map etc.) #70

Closed villares closed 2 years ago

villares commented 3 years ago

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 setup():
    size(500, 500)

    frutas = ["abacaxi", "aalto", "uva", "banana", "caju"]
    print(sorted(frutas, key=lambda p : p[-1]))