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.