Вопросы с тегом «currying»

438
В чем разница между карри и частичным применением?

Я нередко вижу в Интернете различные жалобы на то, что примеры карри других людей не являются карри, а на самом деле являются лишь частичным применением. Я не нашел достойного объяснения того, что такое частичное приложение или чем оно отличается от карри. Кажется, существует общая путаница с...

172
JavaScript карри: каковы практические приложения?

Я не думаю, что я грэк карри еще. Я понимаю, что он делает, и как это сделать. Я просто не могу придумать ситуацию, которую я бы использовал. Где вы используете каррирование в JavaScript (или где его используют основные библиотеки)? Приветствуются манипуляции с DOM или общие примеры разработки...

118
Что означает лямбда с двумя стрелками в Java 8?

Раньше я читал несколько руководств по Java 8. Прямо сейчас я столкнулся со следующей темой: поддерживает ли Java каррирование? Здесь я вижу следующий код: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Я понимаю, что...

93
Упорядочивание параметров для использования каррирования

Я дважды недавно реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flipили \x -> foo bar x 42происходили. Какие принципы помогут мне лучше всего использовать каррирование при разработке сигнатуры функции?...

93
Как мне написать функцию, которая возвращает другую функцию?

В Python я хотел бы написать функцию, make_cylinder_volume(r)которая возвращает другую функцию. Эта возвращенная функция должна быть вызвана с параметром hи возвращать объем цилиндра с высотой hи радиусом r. Я знаю, как возвращать значения из функций в Python, но как мне вернуть другую функцию ?...

83
Два способа каррирования в Scala; какой вариант использования для каждого?

Я веду обсуждение списков нескольких параметров в Руководстве по стилю Scala, которое я поддерживаю. Я понял, что есть два способа каррирования , и мне интересно, каковы варианты использования: def add(a:Int)(b:Int) = {a + b} // Works add(5)(6) // Doesn't compile val f = add(5) // Works val f =...

82
Scala currying против частично применяемых функций

Я понимаю, что здесь есть несколько вопросов о том, что такое каррирование и частично применяемые функции, но я спрашиваю, чем они отличаются. В качестве простого примера приведем каррированную функцию для поиска четных чисел: def filter(xs: List[Int], p: Int => Boolean): List[Int] = if...