Публикации по теме '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;
}
}
Давайте создадим объект и..