Sobes.tech
Junior — Middle

Tudná elmagyarázni a funkcionális programozás alapelveit és megközelítéseit?

sobes.tech MI

Válasz az MI-től

A funkcionális programozás (FP) egy olyan programozási paradigma, amely a funkciók fő építőkövekként való használatán alapul, és elkerüli az állapot változtatását és a mellékhatásokat.

A FP fő elvei és megközelítései:

  • Tiszta függvények: egy függvény mindig ugyanazt az eredményt adja ugyanazon bemeneti adatok esetén, és nem változtatja meg a külső állapotot.
  • Változtathatatlanság (immutability): az adatok nem változnak a létrehozásuk után, helyette új másolatokat hozunk létre módosításokkal.
  • Függvények magasabb rendűek: olyan függvények, amelyek más függvényeket fogadnak el argumentumként vagy adnak vissza.
  • Rekurzió ciklusok helyett: a rekurziót gyakran használják műveletek ismétlésére.
  • Mellékhatások hiánya: a függvények nem módosíthatják a külső változókat, fájlokat, adatbázisokat stb.

Példa C++-ban (lambda függvények használatával):

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

int main() {
    std::vector<int> számok = {1, 2, 3, 4, 5};
    
    // Magasabb rendű függvény: lambda átadása a std::for_each-nek
    std::for_each(számok.begin(), számok.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Itt nem módosítjuk az eredeti vektort, hanem egyszerűen alkalmazunk egy függvényt minden elemre a megjelenítéshez, ami összhangban van a funkcionális megközelítés elveivel.