Здесь приведен пример функции более высокого порядка, называемой функцией A, которая имеет customValue как входную и возвращает функцию, которая получает вход, и использует настраиваемое значение для разработки результата:
let functionA = (customValue) => {
let value = customValue || 1;
return input => input * value;
};
Вот некоторые результаты:
functionA()(4)
// => returns 4
functionA(2)(4)
// => returns 8
functionA(3)(4)
// => returns 12
functionA(4)(4)
// => returns 16
Может ли функция, возвращаемая функцией A считаться чистой?
UPDATE: приведенные выше примеры используют только числовой ввод. Как описано в @CRice, возвращаемая функция может считаться чистой только тогда, когда customValue является константой и не имеет внутреннего состояния (например, классов).