Javascript. ¿Qué es eso de las High-Order-Functions?

Una explicación del concepto de High Order Functions en Javascript y cómo podemos emplearlas

Image for post
Image for post

Pasando funciones como argumentos

const duplicate = num => num * 2;
const foo = [1, 2, 3, 4];
const result = foo.map(duplicate); // [2, 4, 6, 8]

Devolviendo funciones

const addGenerator = (x) => (y) => x + y;
const addGenerator = (x) => (y) => x + y;
const addThree = addGenerator(3); // y => 3 + y
const result = addThree(5) // 8
const addGenerator = (x) => (y) => x + y;
const result = addGenerator(3)(5) // 8

Componiendo funciones

const f = a => a + 2;const g = a => a * 3;
let result = f(5) // 7result = g(result) // 21
const getName = person => person.name;

getName({ name: 'Gerardo' });
// Gerardo
const uppercase = foo => foo.toUpperCase();

uppercase('Gerardo');
// GERARDO
const name = uppercase(getName({ name: 'Gerardo' }));
const pipe = (...fns) => (x) => fns.reduce((v, f) => f(v), x);
const getUppercaseName = pipe(getName, uppercase);const result = getUppercaseName({'name': 'Gerardo'}); // GERARDO

¿Quieres recibir más artículos como este?

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store