Junior — Middle
Può spiegare le basi dei principi e degli approcci della programmazione funzionale?
sobes.tech AI
Risposta dell'AI
La programmazione funzionale (PF) è un paradigma di programmazione basato sull'uso delle funzioni come blocchi costruttivi principali e sull'evitare di modificare lo stato e gli effetti collaterali.
Principi e approcci chiave della PF:
- Funzioni pure: una funzione restituisce sempre lo stesso risultato per gli stessi dati di input e non modifica lo stato esterno.
- Immutabilità: i dati non cambiano dopo la creazione, invece vengono create nuove copie con modifiche.
- Funzioni di ordine superiore: funzioni che accettano altre funzioni come argomenti o le restituiscono.
- Ricorsione invece di cicli: la ricorsione viene spesso usata per ripetere operazioni.
- Assenza di effetti collaterali: le funzioni non devono modificare variabili esterne, file, database, ecc.
Esempio in C++ (usando funzioni lambda):
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// Funzione di ordine superiore: passare una funzione lambda a std::for_each
std::for_each(numbers.begin(), numbers.end(), [](int n) {
std::cout << n * 2 << " ";
});
return 0;
}
Qui non modifichiamo il vettore originale, ma applichiamo semplicemente una funzione a ogni elemento per visualizzarlo, il che si allinea con le idee dell'approccio funzionale.