Публикации по теме 'currying'


Замыкания в JavaScript
Замыкания — очень фундаментальная концепция JavaScript. Разработчики используют их практически каждый день, сами того не замечая. Если вы где-то слышали об этой теме, но до сих пор не разобрались, то эта статья как раз для вас. Определение закрытия в соответствии с MDN следующее: "Замыкание — это комбинация функции, объединенной (заключенной) со ссылками на окружающее ее состояние (лексическое окружение)". Проще говоря, это дает вам доступ к области действия «внешней» функции с..

Карринг-вопросы на собеседовании
Так что карри? Проще говоря, каррирование - это способ изменения функции, которая принимает несколько аргументов (n) за раз, на функцию, которая принимает меньшие аргументы за раз и возвращает функцию для принятия оставшихся аргументов, которая снова возвращает другую функцию, и так до тех пор, пока все аргументы передаются и, наконец, возвращает результат. Начнем с простого примера каррирования. let multiply = (a, b) => a*b; Вышеупомянутая функция умножить принимает два..

Добавьте остроты в свой JavaScript
Какую из следующих эквивалентных реализаций вы предпочитаете? [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] .filter(int => isEven(int)) .filter(int => isBiggerThan(3, int)) .map(int => int + 1) .map(int => toChar(int)) .filter(char => !isVowel(char)) .join('') // 'fhjl' vs [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] .filter(isEven) .filter(isBiggerThan(3)) .map(plus(1)) .map(toChar) .filter(not(isVowel)) .join('') // 'fhjl' Я бы сказал, что второй вариант более читабельный...

Побочные эффекты включают…
Нашел несколько интересных вещей, которые следует учитывать при построении функций, из учебника по функциональному программированию от Frontend Masters . Чистые функции  — функция, которая не имеет побочных эффектов, работает со своими собственными переменными и состоянием или со всем, что ей передается (не изменяет внешнее состояние). многие функциональные программисты пишут нечистые функции, но не оставляют их в открытом доступе. оборачивают нечистую функцию в другую функцию, чтобы..

I ❤ Ramda - частичное приложение со специальным заполнителем
Введение в I ❤ Ramda Серия I ❤ Ramda будет немного отличаться от других, которые вы, возможно, видели. Вместо использования типичных foo , bar , baz примеров или статей, демонстрирующих изолированные функции, эта серия нацелена на демонстрацию реальных приложений Ramda.js. Частичное приложение со специальным заполнителем Если вы использовали bind , возможно, вы уже знакомы с концепцией частичного приложения. Используя bind , мы смогли частично применить значение 2 к..

Рецепт JavaScript Curry для начинающих
Сравнение методов класса и каррирования Каррированная функция — это просто функция, которая возвращает функцию. Там! Я использовал функцию три раза в одном предложении. Во всяком случае, это правда с модификацией, как мы говорим на моем родном языке. Начнем с того, что не будем приукрашивать вещи. class Addition { constructor(a) { this.a = a; } add(b) { // class functions are called methods, don't ask me why. return this.a + b; } } Давайте создадим объект и..