Запитання з тегом «currying»

Каррінг - це процес перетворення функції декількох аргументів у функцію одного аргументу, який повертає іншу функцію, яка приймає на один аргумент менше, ніж вихідний. Такі мови, як Haskell, використовують це як механізм застосування аргументів за замовчуванням, оскільки це значно полегшує певні техніки програмування, такі як часткове застосування.


14
Чим відрізняється каррі від часткового застосування?
Я досить часто бачу в Інтернеті різні скарги на те, що інші народи прикладів каррінгу не є, але насправді є лише частковим застосуванням. Я не знайшов гідного пояснення, що таке часткове застосування або чим воно відрізняється від каррінгу. Здається, загальна плутанина, в еквівалентних прикладах описується як десерт, а в інших …

15
Карі JavaScript: які практичні програми?
Я не думаю, що я ще погризла каррі. Я розумію, що це робить, і як це зробити. Я просто не можу придумати ситуацію, яку б я використав. Де ви використовуєте currying в JavaScript (або де основні бібліотеки використовують його)? Маніпуляції з DOM або загальні приклади розробки додатків вітаються. В одній …

6
Що означає лямбда з 2 стрілками на Java 8?
Я раніше читав кілька навчальних посібників Java 8. Зараз я зіткнувся з такою темою: Чи підтримує java Currying? Тут я бачу такий код: IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b; System.out.println(curriedAdd.apply(1).applyAsInt(12)); Я розумію, що цей приклад становить 2 елементи, але я не можу зрозуміти конструкцію: a -> …
118 java  lambda  java-8  currying 

3
Впорядкування параметрів для використання каррі
Нещодавно я двічі переробляв код для того, щоб змінити порядок параметрів, тому що там було занадто багато коду, де хакі подобаються flipабо \x -> foo bar x 42відбуваються. При розробці підпису функції, які принципи допоможуть мені найкраще використовувати каррі?

4
Як написати функцію, яка повертає іншу функцію?
У Python я хотів би написати функцію, make_cylinder_volume(r)яка повертає іншу функцію. Ця повернена функція повинна викликатися параметром hі повертати об'єм циліндра з висотою hта радіусом r. Я знаю, як повернути значення з функцій у Python, але як повернути іншу функцію ?


3
Два способи каррі в Scala; який варіант використання для кожного?
Я обговорюю декілька списків параметрів у керівництві Scala Style, яке я веду . Я зрозумів, що є два способи каррі , і мені цікаво, якими є варіанти використання: def add(a:Int)(b:Int) = {a + b} // Works add(5)(6) // Doesn't compile val f = add(5) // Works val f = add(5)_ …

5
Каррінг Scala проти частково застосованих функцій
Я розумію, що тут є кілька питань про те, що таке функції каррінгу та частково застосовані, але я запитую про те, як вони відрізняються. Як простий приклад, ось наведена функція для пошуку парних чисел: def filter(xs: List[Int], p: Int => Boolean): List[Int] = if (xs.isEmpty) xs else if (p(xs.head)) xs.head …

4
Яка різниця між кількома списками параметрів і кількома параметрами в списку в Scala?
У Scala можна писати (curried?) Такі функції def curriedFunc(arg1: Int) (arg2: String) = { ... } У чому різниця між наведеним вище curriedFuncвизначенням функції з двома списками параметрів та функціями з декількома параметрами в одному списку параметрів: def curriedFunc(arg1: Int, arg2: String) = { ... } З математичної точки зору …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.