Sobes.tech
Junior — Middle

Kunt u de basisprincipes en benaderingen van functioneel programmeren uitleggen?

sobes.tech AI

Antwoord van AI

Functioneel programmeren (FP) is een programmeerparadigma gebaseerd op het gebruik van functies als de belangrijkste bouwstenen en het vermijden van het wijzigen van de toestand en bijwerkingen.

Belangrijke principes en benaderingen van FP:

  • Pure functies: een functie geeft altijd hetzelfde resultaat voor dezelfde invoergegevens en wijzigt geen externe toestand.
  • Onveranderlijkheid (immutabiliteit): gegevens veranderen niet na creatie, in plaats daarvan worden nieuwe kopieën gemaakt met wijzigingen.
  • Functies van hogere orde: functies die andere functies accepteren als argumenten of teruggeven.
  • Recursie in plaats van lussen: recursie wordt vaak gebruikt om operaties te herhalen.
  • Afwezigheid van bijwerkingen: functies mogen geen externe variabelen, bestanden, databases, etc. wijzigen.

Voorbeeld in C++ (met lambda-functies):

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

int main() {
    std::vector<int> getallen = {1, 2, 3, 4, 5};
    
    // Functie van hogere orde: lambda-functie doorgeven aan std::for_each
    std::for_each(getallen.begin(), getallen.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Hier wijzigen we de oorspronkelijke vector niet, maar passen we een functie toe op elk element om het weer te geven, wat overeenkomt met de ideeën van de functionele aanpak.