Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 5 #150

Open
PhilipvEgmond opened this issue May 10, 2021 · 0 comments
Open

Chapter 5 #150

PhilipvEgmond opened this issue May 10, 2021 · 0 comments

Comments

@PhilipvEgmond
Copy link

Chapter 5: Higher Order functions

Absctraction

Het is belangrijk zo efficiënt mogelijke code te schrijven. Hoe minder code hoe makkelijker het te begrijpen is. Dit zorgt ook voor minder bugs en minder plekken voor bugs om zich te verstoppen.

Wat hierbij helpt is abstraction. Abstraction laat de details achterwegen zodat je problemen op een hoger niveau kan inzien. Het is belangrijk dat je erop let dat je niet te laag werkt omdat je dan hele lange code krijgt.

Abstracting repetition

Programma’s voeren regelmatig een bepaalde taak meerdere keren uit. In plaats van elke keer een for loop te schrijven kan je ook een functie schrijven waarbij je het aantal herhalingen en de actie meegeeft.

let labels = [];
repeat(5, i => {
labels.push(Unit ${i+1});
}));
let labels = [];
repeat(5, i => {
labels.push(Unit ${i + 1});
});
console.log(labels);
// → ["Unit 1", "Unit 2", "Unit 3", "Unit 4", "Unit 5"]

Higher order functions

Dit zijn functies die op andere functies draaien door ze als args te nemen of te returnen. Dit zorgt voor meer abstractie.

function greaterThan(n) {
return m => m > n;
}
let greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true

Array

Arrays hebben een aantal higher-order methods. Je hebt forEach om door elk element van de array te loopen. Filter geeft een nieuwe array met alleen de elementen die de test functie doorkomen. Met map kan je een array transformeren, als je een array van objects heb kan je bijvoorbeeld alleen een bepaalde property in de array doen in plaats van het hele object. Met reduce kan je alle elementen combineren tot één value.

Bronnen:
Higher-Order Functions :: Eloquent JavaScript. (2011). Marijn Haverbeke. https://eloquentjavascript.net/05_higher_order.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant