Programmazione funzionale in pratica

Concetti dei paradigmi di programmazione

Eleanor Thomas

Senior Data Analytics Engineer

Programmazione funzionale in pratica

  • Tre esempi di funzioni pure
  • Differenza chiave tra una funzione pura e una funzione Python generale: niente effetti collaterali
  • Le funzioni pure possono chiamare altre funzioni pure e restare pure

Lavagna

Concetti dei paradigmi di programmazione

Esempio 1 - Scrivere una funzione pura

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • Prima crea una nuova lista vuota
  • Scorri ogni elemento della lista di input
    • Elevato al quadrato
    • Aggiungilo alla nuova lista
  • Restituisci la nuova lista
Concetti dei paradigmi di programmazione

Esempio 2 - Correggere una funzione “impura”

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Dipende da variabili fuori dal corpo della funzione
  • Non è una funzione pura
Concetti dei paradigmi di programmazione

Esempio 2 - Funzione “impura” corretta

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Le variabili sample_mean e scale_factor diventano parametri di input della funzione
  • La funzione ora è “pura”
Concetti dei paradigmi di programmazione

Esempio 3 - Combinare funzioni pure

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
Concetti dei paradigmi di programmazione

Passons à la pratique !

Concetti dei paradigmi di programmazione

Preparing Video For Download...