funzioni di ordine elevato di Python

Come sviluppatore, probabilmente hai utilizzato normali funzioni JavaScript. Chiamate funzioni del primo ordine, non accettano una funzione come parametro né restituiscono una funzione.

Questo articolo parla di funzioni di ordine superiore (HOF). Queste sono funzioni che aiutano gli sviluppatori a ridurre il codice per renderlo più leggibile passando una funzione come argomento o restituendo una funzione. Esamineremo alcuni esempi di base per introdurti a HOF e alla programmazione funzionale e parleremo di due popolari metodi avanzati di array che utilizzano il costrutto di funzioni di ordine superiore per funzionare.

Esempi di base di funzioni di ordine superiore

h2>

Ci sono diversi modi per utilizzare le funzioni di ordine superiore in JavaScript.

Calcolatrice

Cominciamo con un HOF di base che accetta una funzione di callback come argomento e restituisce quel callback con alcuni argomenti:

Qui abbiamo due tipi di funzioni: una funzione di ordine superiore che restituisce un callback e una funzione di primo ordine che esegue un’operazione su due numeri. Alla fine dello snippet, effettuiamo una chiamata di funzione a higherOrderFunction(). Questa funzione restituisce il risultato di un’invocazione del cb che è stata passata con i parametri dati. Se hai scritto una funzione di callback per tutti i possibili operatori aritmetici, puoi usare la upperOrderFunction per chiamare qualsiasi operazione ti serva.

Event Listener

Un altro esempio di una funzione di ordine superiore è ciò che si verifica quando aggiungi un event listener a un elemento sul DOM (document object model). Prendi questo esempio:

In questo esempio, ho creato un pulsante in HTML, l’ho selezionato utilizzando JavaScript e vi ho aggiunto un listener di eventi. La struttura del listener di eventi è quella di una semplice funzione di ordine superiore ‚Äì prende in una funzione anonima come secondo argomento.

Area evidenziata che mostra dove si trova la funzione di ordine superiore in un ascoltatore di eventi.

La sezione evidenziata è la tua funzione di ordine superiore.

L’81% dei partecipanti ha dichiarato di si sentivano più sicuri delle loro prospettive di lavoro nel settore tecnologico dopo aver frequentato un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Metodi array JavaScript integrati sono quelle funzioni speciali di ordine superiore nuove per ES6 che possiamo usare per iterare su un array e manipolarlo o restituire un array completamente nuovo i cui valori sono stati manipolati.

Quando iniziamo a ottenere nella risoluzione di problemi più complessi in JavaScript, inizia a pensare di astrarre parte della logica che scriviamo quando iteriamo su array. L’utilizzo di questi metodi di array di funzioni di ordine superiore ti aiuta a diventare uno sviluppatore JS migliore.

Diciamo, ad esempio, che abbiamo una serie di professori:

UVNRam00sqZ2XWlWgK36aj3tP7oHL2i1wM3JLEDbcqwXs IBMxRNlmbknHgjO JFy32VHF7u4glA1btMETcPhCPyoZ0GuToxG0D7MlPWlNMaWsRUNJtkMRNP4kPAYBdORaCwWiRF

forEach

Se vogliamo iterare sull’array e manipolare ogni elemento prima di usare ES6, questo è quello che dobbiamo fare:

La sintassi ES6 ci consente di ridurre il codice utilizzando il metodo forEach:

Questo metodo forEach accetta una funzione di callback come primo parametro per renderlo una funzione di ordine superiore. Questa funzione di callback è fondamentalmente l’ "azione" eseguita su ogni elemento che si trova nell’array. Inoltre, il metodo forEach accetta anche un indice e un array come secondo e terzo parametro opzionali.

L’ordine è importante su questi parametri nel metodo forEach (cosi come negli altri -in metodi array). La prima è sempre la funzione di callback, la seconda è sempre l’indice dell’elemento nell’array e la terza è sempre una copia dell’array stesso.

Il metodo forEach è un altro modo per presenta un ciclo for in JavaScript. Non restituisce nulla. Il metodo manipola ciò che è già presente e lo salva nell’array con cui stai lavorando se specifichi cosa vuoi farne.

Mappa

Il metodo più vicino a forEach il metodo è il metodo della mappa. Funziona allo stesso modo, tranne che questo metodo restituisce un nuovo array. Tutto ciò che manipoli nella funzione di callback non influenzerà l’array originale.

Diamo un’occhiata a come era la mappa prima di ES6:

Come puoi vedere, quello che dovevamo fare era creare un’istanza di un nuovo array al di fuori del nostro ciclo for in modo da potervi inserire nuovi valori. Quindi dobbiamo effettivamente restituire il nostro nuovo array per poterlo effettivamente utilizzare altrove!

Con ES6 e il metodo map, possiamo astrarre parte di quella logica per renderlo più leggibile:

La caratteristica speciale del metodo map e di altri metodi array come questo, la funzione reduce e filter in particolare, è che puoi assegnarlo a una variabile e restituirlo o semplicemente restituire il tutta la funzione del tutto! Non è necessario spingere su un nuovo array ‚Äì è fatto per te con questo metodo di mappa. Ricorda di avere un valore di ritorno nella logica all’interno della funzione di callback del metodo della mappa!

Conclusione:

Le funzioni di ordine superiore sono un concetto estremamente importante in JavaScript per aiutarti a diventare uno sviluppatore migliore. Aiuterà ad astrarre un po’ di logica per rendere il tuo codice più leggibile e, in alcuni casi, più performanti.

In questo tutorial, abbiamo esplorato alcuni dei diversi modi in cui possiamo scrivere funzioni di ordine superiore, dai metodi di base della calcolatrice ai listener di eventi e alle funzioni array avanzate. Una volta che hai imparato questo, sei pronto per affrontare alcune soluzioni più complesse ai problemi!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method