Я не думаю, что у меня есть grokked, приправляющий карри все же. Я понимаю то, что это делает, и как сделать это. Я просто не могу думать о ситуации, я использовал бы ее. Где Вы используете приправление карри в JavaScript (или где...
Как я могу обязать аргументы методу Python хранить nullary функтор для более позднего вызова? Подобный повышению C++:: связать. Например: определение добавляет (x, y): возвратитесь x + y add_5 = magic_function (добавьте...
Частичное приложение прохладно. Что функциональность functools.partial предлагает этому, Вы не можете пройти через лямбды?>>> суммируют = лямбда x, y: x + y>>> сумма (1, 2) 3>>> incr =...
Можете Вы передать в операции как "делитесь на 2", или "вычитают 1" использование просто частично прикладной оператор, где, "добавляют 1", похож на это: List.map ((+) 1) [1.. 5];;//равняется [2.. 6]//вместо наличия...
Я часто вижу в Интернете различные жалобы на то, что примеры карри других людей не являются карри, а на самом деле являются лишь частичным применением. Я не нашел достойного объяснения того, что ...
При создании карты Строки к частичным функциям я столкнулся с неожиданным поведением. Когда я создаю частичную функцию как элемент карты, это хорошо работает. Когда я выделяю val, он вызывает вместо этого...
Рассмотрим этот код, #include & lt; iostream & gt; #include & lt; функциональный & gt; void pacifist () {std :: cout & lt; «Я не вмешиваюсь в аргументы. Я пацифист.\n"; } int main () {...
Я немного шаток на правилах относительно того, когда Вам нужно _ после метода для использования его в качестве функции. Например, почему там различие между Foo и Нолем:: в следующем? квадрат определения (n: Интервал) = n...
Я не могу понять, как работает частичное в functools. Здесь у меня есть следующий код: > > > сумма = лямбда х, у: х + у > > сумма (1, 2) 3 > > > incr = лямбда-у: ...
Недавно я дважды реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flip или \ x -> foo bar x 42 происходили. При разработке ...
Как это возможно, что там происходит? Есть ли для этого название? Какие другие языки имеют такое же поведение? Любой без сильной системы набора текста?
Я начал с haskell вчера и все еще полностью потерялся на берегу этого дивного нового мира. Теперь я столкнулся со следующей проблемой: Предположим, у меня есть какая-то функция, которая творит чудеса ...
См. этот пример: def hello (a: String, b: String) = println (a + ":" + b)
val m1 = привет ("ааа", _)
m1 ("bbb") Он не может быть скомпилирован, мне нужно добавить тип к частичному методу: val m1 = hello ("...
В Python считается лучшим стилем: явное определение полезные функции с точки зрения более общих функций, возможно внутреннего использования; или, Частичное применение функции (каррирование) по сравнению с явным определением функции В Pyt
Я пытаюсь понять преимущества каррирования над частичными приложениями в Scala. Обратите внимание на следующий код: def sum (f: Int => Int) = (a: Int, b: Int) => f (a) + f (b) def ...
Хотя я немного разбираюсь в каррировании в математическом смысле, частично применение инфиксной функции было новой концепцией, которую я обнаружил после погружения в книгу Learn You a Haskell для...
Я большой поклонник ES5 Function.prototype.bind и каррирования аргументов (, которые в основном создают аргументы по умолчанию для функций ). Я немного повозился с этим, но я не могу, хоть убей...
Я реализовал функцию карри следующим образом: function curry (fn) {var slice = Array.prototype.slice, args = slice.apply (arguments, [1]); return function () {fn.apply (null, ...
Я заметил, что когда я работаю с функциями, которые ожидают другие функции в качестве параметров, я иногда могу сделать это : someFunction (firstParam, anotherFunction) Но в других случаях компилятор дает мне ...
В Scala можно писать (каррированные?) Функции, подобные этой def curriedFunc (arg1: Int) (arg2: String) = {...} В чем разница между приведенным выше определением функции curriedFunc с двумя параметрами ...
Несколько списков параметров, например def foo (a: Int) (b: Int) = {}, и несколько параметров на список, например def foo (a: Int, b: Int) = {} семантически эквивалентны насколько я могу судить, и наиболее функционально ...
Почему работает частичное применение функций с разными сигнатурами? Возьмем для примера Control.Monad.join :GHCi> :t (=<<)
(=<<)::Монада m => (a -> m b)-> м а -> м...
Я только что узнал из другого вопроса, что Haskell называется каррированным языком программирования, потому что он по умолчанию применяет каррирование функций. Какие другие языки отображают такое поведение?
Возьмем, к примеру, встроенную в Python функцию pow(). xs = [1,2,3,4,5,6,7,8] из functools import partial list(map(partial(pow,2),xs)) >>> [2, 4, 8, 16, 32 , 128, 256], но как бы я...
Учитывая этот код :открытый класс Foo { общедоступный {получить; набор; } общественный интервал b { получить; набор; } } закрытый недействительный тест (){ List foos = новый List (); foos.Add (новый Foo (...
Другими словами, есть ли веская причина, по которой это не должно компилироваться? def f (xs: List [Int]) = xs.foldLeft (0) _ // ОК
def f (xs: List [Int]) = (xs: \ 0) _ // ОК {{1 }} def f (xs: List [Int]) = (0 /: xs) _ & ...
В настоящее время у меня есть функция частичного приложения, которая выглядит следующим образом: Function.prototype.curry = function ()
{var args = []; for (var i = 0; i
Sometimes it is useful to take a method call, complete with parameters, and turn it into a MethodInvoker which will invoke the indicated function with those parameters, without having to specify the ...