Python Language
Programmazione funzionale in Python
Ricerca…
introduzione
La programmazione funzionale decompone un problema in un insieme di funzioni. Idealmente, le funzioni prendono solo input e producono output e non hanno nessuno stato interno che influenzi l'output prodotto per un dato input. Di seguito sono riportate le tecniche funzionali comuni a molte lingue: come lambda, map, reduce.
Funzione Lambda
Una funzione anonima e in linea definita con lambda. I parametri del lambda sono definiti a sinistra del colon. Il corpo della funzione è definito a destra del colon. Il risultato dell'esecuzione del corpo della funzione è (implicitamente) restituito.
s=lambda x:x*x
s(2) =>4
Funzione mappa
Mappa prende una funzione e una collezione di oggetti. Crea una nuova raccolta vuota, esegue la funzione su ciascun elemento della raccolta originale e inserisce ciascun valore restituito nella nuova raccolta. Restituisce la nuova collezione.
Questa è una mappa semplice che prende un elenco di nomi e restituisce un elenco delle lunghezze di quei nomi:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Ridurre la funzione
Ridurre prende una funzione e una collezione di oggetti. Restituisce un valore che viene creato combinando gli elementi.
Questa è una semplice riduzione. Restituisce la somma di tutti gli articoli nella collezione.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Funzione filtro
Il filtro ha una funzione e una collezione. Restituisce una collezione di ogni oggetto per il quale la funzione ha restituito True.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]