Dus wat is functioneel programmeren?
Bij functioneel programmeren draait alles om het scheiden van zorgen, wat objectgeoriënteerd programmeren ook doet,
toch?
Het draait allemaal om het verpakken van onze code in afzonderlijke brokken, zodat alles goed georganiseerd is in elk deel van onze
code.
En elk onderdeel is georganiseerd op een manier die logisch is op basis van functionaliteit.
Dus als we het scheiden van zorgen zeggen, bedoelen we dat elk deel zich bezighoudt met het zelf met één ding waar het goed in
is.
We herinneren ons in onze objectgeoriënteerde programmeersectie hoe we klassen hadden om attributen en
methoden te verdelen van, laten we zeggen, een wizardklasse en een boogschutterklasse.
En functioneel programmeren heeft ook dit idee van het scheiden van zorgen, maar ze scheiden ook gegevens en
functies.
Zo ziet een functionele programmeur de wereld.
In plaats van methoden en attributen te combineren, scheiden we ze omdat het twee aparte dingen zijn.
Er zijn gegevens en op deze gegevens wordt interactie en actie ondernomen.
Maar we gaan niet zowel data als functies combineren als één geheel en een object zoals we zagen bij
objectgeoriënteerd programmeren.
Nu is er geen juiste definitie voor wat wel en niet functioneel is.
Maar over het algemeen leggen functionele talen de nadruk op eenvoud waar het gegevens en functies betreft,
omdat we in de meeste functionele programmeerparadigma's dit idee van klassen en objecten niet hebben.
In plaats daarvan werken functies op goed gedefinieerde datastructuren zoals lijsten en woordenboeken die we hebben gezien, in
plaats van die datastructuur bij een object te horen.
Maar uiteindelijk is het doel van een functioneel programmeerparadigma hetzelfde als een objectgeoriënteerd paradigma.
Het is het idee om onze code schoon en begrijpelijk te maken.
Makkelijk uit te breiden.
Dat wil zeggen, we kunnen onze code laten groeien en steeds beter maken en anderen onze code laten komen uitbreiden.
Het is gemakkelijker te onderhouden.
Het houdt onze code droog zodat we onszelf niet herhalen en ons codegeheugen efficiënt te
houden omdat we niet overal informatie opslaan.
Als we nu naar functioneel programmeren komen, hebben we een zeer belangrijke pijler en in tegenstelling tot
objectgeoriënteerd programmeren waar we die vier pijlers van inkapseling, abstractie, overerving en polymorfisme hadden, als je
dingen wilt afbreken in functioneel programmeren, komt het allemaal neer aan dit concept van pure
functies.
En dit is iets dat we in de komende video's gaan onderzoeken.
Maar het idee hier is dat er een scheiding is tussen gegevens van een programma en het gedrag van een programma.
Laten we dus meer te weten komen over pure functies.
Wat bedoelen ze?
Wat zijn zij?