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]


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow