Sobes.tech
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.