Skip to content

Higher-Order Functions

Higher-order functions take functions as arguments or return functions.

Map

Transform each element of an array:

let numbers = [1, 2, 3, 4, 5];
let doubled = map(numbers, |x| => { return x * 2; });
print doubled;  // [2, 4, 6, 8, 10]

Filter

Keep only elements that match a condition:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
let evens = filter(numbers, |x| => { return x % 2 == 0; });
print evens;  // [2, 4, 6, 8]

Reduce

Combine elements into a single value:

let numbers = [1, 2, 3, 4, 5];
let sum = reduce(numbers, 0, |acc, x| => { return acc + x; });
print sum;  // 15

Chaining Operations

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Get sum of squares of even numbers
let evens = filter(numbers, |x| => { return x % 2 == 0; });
let squares = map(evens, |x| => { return x * x; });
let sum = reduce(squares, 0, |acc, x| => { return acc + x; });

print sum;  // 220 (4+16+36+64+100)