Описание тега currying
Каррирование - это процесс преобразования функции с несколькими аргументами в функцию с одним аргументом, которая возвращает другую функцию, которая принимает на один аргумент меньше, чем исходный. Такие языки, как Haskell, используют его в качестве механизма приложения аргументов по умолчанию, поскольку он значительно упрощает определенные методы программирования, такие как частичное приложение.
1
ответ
Почему неявные параметры не считаются ошибками компилятора в F#
Я немного новичок в функциональном программировании, и хотя я немного знаком с F#, я все еще изучаю все странные способы его работы. //I love my Rice and Curry'd functions let add x = let subFunction y = x + y subFunction //explicit parameter let ad…
02 мар '15 в 06:39
1
ответ
Как я могу создать карри анонимную функцию в Scala?
Как я могу создать анонимную и карри функцию в Scala? Следующие два не удалось: scala> (x:Int)(y:Int) => x*y <console>:1: error: not a legal formal parameter (x:Int)(y:Int) => x*y ^ scala> ((x:Int)(y:Int)) => x*y <console>…
15 июн '12 в 10:36
3
ответа
Может кто-нибудь объяснить мне поток этой функции JavaScript? (Закрытие концепции)
Я читаю " Красноречивый JavaScript". Глава 3 знакомит с концепцией " Закрытие" и дает вам пару примеров. Один из них следующий: function multiplier(factor) { return function(number) { return number * factor; }; } var twice = multiplier(2); console.l…
03 авг '16 в 09:35
1
ответ
Невозможно понять поведение заполнителя _ в приложении функции scala
Welcome to Scala version 2.10.2 Type in expressions to have them evaluated. Type :help for more information. scala> val fn = (x:Int) => x+1 fn: Int => Int = <function1> scala> val fn1 = fn _ fn1: () => Int => Int = <functi…
05 июл '13 в 08:31
2
ответа
Может ли кто-нибудь помочь мне понять этот кусок кода в Javascript?
var curryIt = function(uncurried) { var parameters = Array.prototype.slice.call(arguments, 1); return function() { return uncurried.apply(this, parameters.concat( Array.prototype.slice.call(arguments, 0) )); }; }; var greeter = function(greeting, se…
17 янв '17 в 21:00
2
ответа
Карри: практические последствия
Мое понимание проблемы исходит от Heilperin's et al. "Конкретная абстракция". Я понял, что каррирование - это перевод оценки функции, которая использует несколько аргументов для оценки последовательности функций, каждая с одним аргументом. У меня ес…
03 окт '16 в 15:40
7
ответов
Как вывести функцию на неизвестное количество параметров
Скажем, у меня есть функция под названием multiplyDivide Если бы я позвонил multiplyDivide(2)(3)(4)(6) это было бы эквивалентно 2 * 3 / 4 * 6, Обновление: возможно ли написать такую функцию, если я не знаю заранее, сколько параметров я буду приним…
28 авг '16 в 02:49
4
ответа
Qt слоты карри
Есть ли способ прорезать карри qt? Может быть, есть что-то похожее на карринг?
24 янв '11 в 16:16
4
ответа
Карри в схеме
У меня есть это curry функция: (define curry (lambda (f) (lambda (a) (lambda (b) (f a b))))) Я думаю это как (define curry (f a b)), мое задание - написать функцию consElem2All с помощью curry, Который должен работать как (((consElem2All cons) 'b) '…
26 июн '11 в 22:21
4
ответа
Что делает uncurry ($)?
Я делаю несколько упражнений, где я должен добавить тип функции и объяснить, что она делает. Я застрял с этим: phy = uncurry ($) Тип, в соответствии с GHCi это phy :: (a -> b, a) -> b, Мои знания по Haskell являются базовыми, поэтому я действи…
13 апр '13 в 21:34
1
ответ
Как карри функции в Haskell
У меня есть функция multThree для умножения 3 чисел, которая работает с карри. Однако, когда я попытался расширить это на умножение четырех чисел, используя ту же структуру, это не сработало. Почему это и как это можно исправить? multThree :: Num a …
02 янв '19 в 12:08
1
ответ
Как реализовать карри (частичная функция) в ruby
Мне нужны примеры реализации функции карри в ruby (1.8.6 или 1.8.7, а не 1.9).
07 июл '09 в 21:44
2
ответа
Композиция функций - Haskell
Опять же, еще один вопрос, вызванный моими попытками ответить на вопросы проекта Эйлера ( следуйте из предыдущего вопроса). У меня проблемы с пониманием следующей строки: print (maximum (map (product . take 13) (tails number))) конкретно map (produc…
17 авг '14 в 13:17
2
ответа
Написание правильного пользовательского экземпляра для чтения
Привет товарищи Хаскеллерс, Я изучаю Haskell с одного месяца и изо всех сил пытаюсь создать пользовательский экземпляр для чтения для личного типа данных. Я следовал этому и соответствующей главе в Learn Yourself a Haskell, вот мой фрагмент кода. da…
23 апр '17 в 11:34
2
ответа
Использование связывания в качестве метода для карри
Я смотрел видео на YouTube о функциональном программировании. Они прошли через некоторые основные вещи карри (все еще пытаясь понять это), а затем они показали способ, которым вы можете использовать связывание как "мягкий" карри. function simpleURL(…
19 апр '15 в 05:35
3
ответа
Javascript использования Bind против карри?
Я пытаюсь понять разницу между curry против bind, Реализация bind является: /*1*/ Function.prototype.bind = function () /*2*/ { /*3*/ var fn = this, /*4*/ args = Array.prototype.slice.call(arguments); /*5*/ var object = args.shift(); /*6*/ return fu…
02 мар '14 в 13:02
2
ответа
Написание ленивых карри в скале с несколькими параметрами
Я пишу код для игры в качестве упражнения для изучения Scala после знакомства с Haskell. Я начал с ADT следующим образом: sealed class Circle(x: Double, y: Double, r: Double) case class PlayerCircle (x: Double, y: Double, r: Double) extends Circle(x…
19 июн '15 в 22:37
1
ответ
Связывание функций карри с lodash
Вдохновленный этой статьей о функциях карри, я пытался их связать и придумал это решение. Я не уверен насчет миксина, хотя, так или иначе, я чувствую, что у lodash такая функция уже есть. Если так, то как называется эта функция? var _ = require('lod…
20 ноя '14 в 16:35
1
ответ
Для оптимизированного карри необходим стиль без точек
Скажем, у нас есть (надуманная) функция, например: import Data.List (sort) contrived :: Ord a => [a] -> [a] -> [a] contrived a b = (sort a) ++ b И мы частично применяем его для использования в других местах, например: map (contrived [3,2,1]…
21 янв '17 в 08:16
4
ответа
С TypeScript я могу набрать карри версию getProperty<T, K расширяет ключ T>
Пример из 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…
16 дек '17 в 16:47