Sobes.tech
Junior — Middle

Можете ли да објасните основе принципа и приступа функционалног програмирања?

sobes.tech АИ

Одговор од АИ

Funkcionalno programiranje (FP) je paradigma programiranja zasnovana na korišćenju funkcija kao osnovnih građevnih blokova i izbegavanju promene stanja i sporednih efekata.

Glavni principi i pristupi FP:

  • Čiste funkcije: funkcija uvek vraća isti rezultat za iste ulazne podatke i ne menja spoljašnje stanje.
  • Nepromenljivost (immutability): podaci se ne menjaju nakon kreiranja, već se umesto toga kreiraju nove kopije sa izmenama.
  • Funkcije višeg reda: funkcije koje prihvataju druge funkcije kao argumente ili ih vraćaju.
  • Rekurzija umesto petlji: rekurzija se često koristi za ponavljanje operacija.
  • Nema sporednih efekata: funkcije ne bi trebalo da menjaju spoljašnje promenljive, fajlove, baze podataka itd.

Primer u C++ (koristeći lambda funkcije):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> brojevi = {1, 2, 3, 4, 5};
    
    // Funkcija višeg reda: prosleđivanje lambda funkcije std::for_each
    std::for_each(brojevi.begin(), brojevi.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Ovde ne menjamo originalni vektor, već jednostavno primenjujemo funkciju na svaki element za prikaz, što je u skladu sa idejama funkcionalnog pristupa.