currying
У меня есть функция с двумя списками параметров, которые я пытаюсь частично применить и использовать с каррингом. Второй список параметров содержит аргументы, которые имеют значения по умолчанию (но не являются неявными). Что-то вроде этого: def test(a: Int)(b: Int = 2, c: Int = 3) { println(a + ", " + b +...
Есть ли способ сохранить какое-то внутреннее состояние при написании функции Карри? Например, предположим, что я хочу написать функцию карри, которая учитывает количество раз, когда функция была вызвана ранее. То есть добавить прогрессивно(3)(4)(5) = 1*3 + 2*4 + 3*5 = 26. Мой подход заключается в добавлен...
Я разработчик c++, который использовал сигналы и слоты в c++, которые мне кажутся аналогичными делегатам в c#. Я обнаружил, что теряюсь в поисках функциональности, обеспечиваемой "bind", и чувствую, что мне чего-то не хватает. Мне кажется, что что-то вроде следующего, что возможно в c++, должно быть возможно...
Скажем, у нас есть (надуманная) функция, такая как: import Data.List (sort) contrived :: Ord a => [a] -> [a] -> [a] contrived a b = (sort a) ++ b И мы частично применяем его для использования в других местах, например: map (contrived [3,2,1]) [[4],[5],[6]] На поверхности это работает так, ка...
Требования: подставка держателя места Частичные прикладные функции могут быть применены к частичным прикладным функциям карринг 5.6 поддержка PHP Вот моя попытка, однако она поддерживает только hhvm 3.7, как вы можете видеть в Примере на http://3v4l.org/0i5FV <?php class Placeholder{} function ...
Пример из https://www.typescriptlang.org/docs/handbook/advanced-types.html function getProperty<T, K extends keyof T>(o: T, name: K): T[K] { return o[name]; // o[name] is of type T[K] } Карри версия: function curriedGetProperty<T, K extends keyof T>(name: K): (o: T) => T[K] { ret...
Здесь все еще новичок Хаскелл. Я знаю ровно столько, чтобы попасть в беду из-за неверных предположений. Если у меня есть следующая функция... quadsum w x y z = w+x+y+z Мне нужна функция, которая может принимать список, использовать каждый элемент в качестве параметра в указанной функции, например quadsum...
Вопрос: Как бы вы это сделали? добавить(2)(5); // 7 добавить(2, 5); // 7 Я пытаюсь решить вопрос выше: Я знаю, что первое решение использует карринг и будет реализовано следующим образом: var add = functoin(x){ return function (y){ return x+y; }; }; В то время как вторая-это ваша нормальная функ...
Я довольно часто вижу в Интернете различные жалобы на то, что другие народы примеры карринга не каррируют, а на самом деле просто частичное применение. Я не нашел достойного объяснения того, что такое частичное применение, или как оно отличается от карринга. По-видимому, существует общая путаница, когда экви...
Я занимаюсь основами функционального программирования на C++. Я пытаюсь сделать функцию f(a)(b)(c), что вернет a + b + c. Я успешно реализовал функцию f(a)(b) который возвращает a + b. вот код для него: std::function<double(double)> plus2(double a){ return[a](double b){return a + b; }; } Я просто...