Wanneer gebruik je functioneel programmeren?

Concepten van programmeerparadigma’s

Eleanor Thomas

Senior Data Analytics Engineer

Toepassingen van functioneel programmeren

  • Machine learning, deep learning, kunstmatige intelligentie
  • Grote datasets analyseren en verwerken
  • Data-engineering (bijv. in Scala en Clojure)

Gegevensverwerking

Concepten van programmeerparadigma’s

Voorbeeld van functioneel programmeren

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • Functie neemt invoerdata in raw_data
  • Maakt een nieuwe variabele voor de uitvoer: processed_data
  • Voert een consistente reeks stappen uit om de data verder te verwerken
  • Geeft processed_data terug
Concepten van programmeerparadigma’s

Voor- en nadelen van functioneel programmeren

VOORDELEN

  • Pure functies zijn makkelijker te lezen en debuggen
  • Pure functies zijn makkelijker te testen
  • Minder onverwachte bijwerkingen in de code
  • Pure functies zijn goed herbruikbaar tussen projecten
  • Functies kunnen parallel draaien voor snellere code

NADELEN

  • Denkwijze kan lastig en beperkend voelen: "side effects" (naar files schrijven, etc.) doen we juist vaak
  • Minder experts, tools en frameworks beschikbaar
  • Steilere leercurve en minder leermateriaal
  • Groter geheugengebruik beperkt toepassingen
Concepten van programmeerparadigma’s

Functioneel vs. declaratief programmeren

  • Functioneel programmeren is een vorm van declaratief programmeren
  • Declaratief programmeren: vertel de computer wát te doen, niet hóe
  • Functioneel programmeren is slechts één type declaratief programmeren
  • Je geeft aan welke functies uitgevoerd worden, niet de exacte stappen

Functioneel programmeren is declaratief

Concepten van programmeerparadigma’s

Laten we oefenen!

Concepten van programmeerparadigma’s

Preparing Video For Download...