Quindi cos'è la programmazione funzionale?
La programmazione funzionale riguarda la separazione delle preoccupazioni, cosa che fa anche la programmazione orientata agli oggetti,
giusto?
Si tratta di impacchettare il nostro codice in blocchi separati in modo che tutto sia ben organizzato in ogni parte del nostro
codice.
E ogni parte è organizzata in modo sensato in base alla funzionalità.
Quindi, quando diciamo separazione delle preoccupazioni, intendiamo che ogni parte riguarda il sé con una cosa in cui è
bravo.
Ricordiamo nella nostra sezione sulla programmazione orientata agli oggetti come avevamo classi per dividere
attributi e metodi di, diciamo, una classe mago e una classe arciere.
E la programmazione funzionale ha anche questa idea di separare le preoccupazioni, ma separa anche dati e
funzioni.
È così che un programmatore funzionale vede il mondo.
Invece di combinare metodi e attributi, li separiamo perché sono due cose separate.
Ci sono dati e questi dati vengono interagiti e gestiti.
Ma non combineremo dati e funzioni come un pezzo unico e un oggetto come abbiamo visto con la programmazione orientata
agli oggetti.
Ora, non esiste una definizione corretta per ciò che è e non è funzionale.
Ma generalmente i linguaggi funzionali hanno un'enfasi sulla semplicità per quanto riguarda dati e funzioni perché nella
maggior parte dei paradigmi di programmazione funzionale, non abbiamo questa idea di classi e oggetti.
Invece, le funzioni operano su strutture di dati ben definite come elenchi e dizionari che abbiamo visto, piuttosto che
appartenere a quella struttura di dati a un oggetto.
Ma alla fine della giornata, l'obiettivo di un paradigma di programmazione funzionale è lo stesso del paradigma orientato agli
oggetti.
È l'idea di rendere il nostro codice pulito e comprensibile.
Facile da estendere.
Cioè, possiamo far crescere il nostro codice e renderlo sempre migliore e chiedere ad altri di estendere il nostro codice.
È più facile da mantenere.
Mantiene il nostro codice asciutto in modo che non ci ripetiamo e mantiene la nostra memoria del
codice efficiente perché non memorizziamo informazioni ovunque.
Ora, quando arriviamo alla programmazione funzionale, abbiamo un pilastro molto importante e, a differenza della programmazione orientata
agli oggetti, dove avevamo quei quattro pilastri di incapsulamento, astrazione, ereditarietà e polimorfismo, se vuoi
scomporre le cose nella programmazione funzionale, tutto si riduce a questo concetto di funzioni
pure.
E questo è qualcosa che esploreremo nei prossimi due video.
Ma l'idea qui è che c'è una separazione tra i dati di un programma e il comportamento di un programma.
Quindi scopriamo di più sulle funzioni pure.
Cosa vogliono dire?
Quali sono?