You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Je kan code op veel verschillende manieren schrijven, maar door abstractions te schrijven kan je sneller bugs voorkomen. Abstractions verbergen details van een functie waardoor je abstracter naar problemen kan kijken: console.log(sum(range(1, 10)));
Als je veel van deze abstracte functies gebruikt, voorkom je dus grote stukken code waar je alles stuk voor stuk uitschrijft.
Deze functies die werken binnen andere functies noem je higher-order functions:
function greaterThan(n) {
return m => m > n;
}
let greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true
Data sets van scripts kan je gebruiken om andere characters op te halen, bijvoorbeeld latijn. Deze scripts zijn gebonden aan unicode. ranges: [[994, 1008], [11392, 11508], [11513, 11520]]
Binnen deze range bevindt zich de unicode van Coptic. Je leest dit als 994 tot 1008, waarbij 994 een coptic character is, en 1008 niet. Om erachter te komen welke scripts in de dataset nog gebruikt worden kan je de volgende code gebruiken:
function filter(array, test) {
let passed = [];
for (let element of array) {
if (test(element)) {
passed.push(element);
}
}
return passed;
}
console.log(filter(SCRIPTS, script => script.living));
// → [{name: "Adlam", …}, …]
Je gebruikt hierbij dus filter om een nieuwe array op te bouwen. Deze functie noem je pure, want het past niet de array aan die gegeven wordt. Met de functie map kan je een array transformeren en een nieuwe aanmaken waarin je de waardes een nieuwe vorm geeft.
function map(array, transform) {
let mapped = [];
for (let element of array) {
mapped.push(transform(element));
}
return mapped;
}
let rtlScripts = SCRIPTS.filter(s => s.direction == "rtl");
console.log(map(rtlScripts, s => s.name));
// → ["Adlam", "Arabic", "Imperial Aramaic", …]
Om een bepaalde value uit een array te halen gebruik je de reduce functie.
function reduce(array, combine, start) {
let current = start;
for (let element of array) {
current = combine(current, element);
}
return current;
}
console.log(reduce([1, 2, 3, 4], (a, b) => a + b, 0));
// → 10
Met CharacterCount() kan je de grootte van een script berekenen.
Some is ook een higher-order function. Het laat zien of de uitkomst true is voor elke waarde in de array. CharCodeAt() returned een code unit, codePointAt() geeft je een unicode character. Dit kan je gebruiken als je niet met units werkt, maar bijvoorbeeld met emoji’s en toch de code erachter wilt weten.
Als je al deze functies niet als een higher-order functie zou schrijven zou je niet veel meer code krijgen, maar het gaat pas echt nut krijgen als je gaat operations gaat composen. Het is dus voornamelijk makkelijk als je met veel grote arrays te werk gaat. Dit kan je veel tijd kosten.
The text was updated successfully, but these errors were encountered:
samanthavz
changed the title
Chapter 5: Higher Order functions
Week 3: Chapter summaries
May 11, 2021
Chapter 5: Higher Order functions
Je kan code op veel verschillende manieren schrijven, maar door abstractions te schrijven kan je sneller bugs voorkomen. Abstractions verbergen details van een functie waardoor je abstracter naar problemen kan kijken:
console.log(sum(range(1, 10)));
Als je veel van deze abstracte functies gebruikt, voorkom je dus grote stukken code waar je alles stuk voor stuk uitschrijft.
Deze functies die werken binnen andere functies noem je higher-order functions:
Data sets van scripts kan je gebruiken om andere characters op te halen, bijvoorbeeld latijn. Deze scripts zijn gebonden aan unicode.
ranges: [[994, 1008], [11392, 11508], [11513, 11520]]
Binnen deze range bevindt zich de unicode van Coptic. Je leest dit als 994 tot 1008, waarbij 994 een coptic character is, en 1008 niet. Om erachter te komen welke scripts in de dataset nog gebruikt worden kan je de volgende code gebruiken:
Je gebruikt hierbij dus
filter
om een nieuwe array op te bouwen. Deze functie noem je pure, want het past niet de array aan die gegeven wordt. Met de functiemap
kan je een array transformeren en een nieuwe aanmaken waarin je de waardes een nieuwe vorm geeft.Om een bepaalde value uit een array te halen gebruik je de
reduce
functie.Met
CharacterCount()
kan je de grootte van een script berekenen.Some
is ook een higher-order function. Het laat zien of de uitkomsttrue
is voor elke waarde in de array.CharCodeAt()
returned een code unit,codePointAt()
geeft je een unicode character. Dit kan je gebruiken als je niet met units werkt, maar bijvoorbeeld met emoji’s en toch de code erachter wilt weten.Als je al deze functies niet als een higher-order functie zou schrijven zou je niet veel meer code krijgen, maar het gaat pas echt nut krijgen als je gaat operations gaat composen. Het is dus voornamelijk makkelijk als je met veel grote arrays te werk gaat. Dit kan je veel tijd kosten.
The text was updated successfully, but these errors were encountered: