Учитывая метод DoSomething, который берет функцию (без параметров) и обрабатывает ее в некотором роде. Существует ли лучший способ создать "перегрузки" для функций с параметрами, чем отрывок ниже?...
Я прочитал часть сообщения на здесь о закрытиях и приправлении карри, но я чувствую, что не нашел ответ. Таким образом, каковы различия и возможно общие черты закрытий и приправления карри?...
Предположим, у меня есть черта с двумя параметрами типа, например черта Qux [A, B] и другая черта с параметром более высокого порядка, например trait Turkle [C [_]] Я бы хотел иметь возможность заменить фиксированный ...
Я пытаюсь проверить наличие некоторых свойств ответа API, которые я хочу требовать во всех тестах (состояние и свойство данных). Вот общий тест, который утверждает желаемые свойства в ...
Я хочу написать функцию добавления, которая производит правильный вывод для каждого из этих выражений. add (1) (2, 3) (4) add (1) (2) (3) (4) add (1, 2, 3, 4) Я пробовал три метода, но все три метода ...
Дано: def save (f: => Any) (run: Boolean) {if (run) {println ("running f"); f} else println ("not running f")} Я могу вызвать это с помощью: save ("test") (true) -> running f
save("test")(false) -> ...
Итак, я не программист на Haskell, но я абсолютно заинтригован многими идеями, стоящими за Haskell, и собираюсь изучить его. Но я застрял на первом месте: я не могу обернуть голову ...
Недавно я дважды реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flip или \ x -> foo bar x 42 происходили. При разработке ...
Во многих языках обработки списков (и других языках) у них есть функция, называемая карри, которая делает некоторые изящные вещи. Мой вопрос: почему они называют это карри? Откуда это имя? ...
Я пытаюсь понять, как работает каррирование в функциональном программировании. Я просмотрел вики и пару вопросов о том же на SO. Нужна помощь в понимании лямбда (каррирования) Что такое ...
Можно ли использовать каррирование в R? Одна из возможностей - иметь специальные функции вставки (это можно рассматривать как продолжение здесь), например (в неправильном коде): '% +%' <- (sep) function (x, y) paste (...
Обнаружив, что метод каррирования групп с несколькими параметрами возможен, я пытаюсь получить частично применяемую функцию, которая требует неявных параметров. Кажется, это невозможно. Если...
Я пытаюсь написать декоратор каррирования на python, и я думаю, что у меня есть общая идея, но все же есть некоторые случаи, которые не подходят не работает правильно ... def curry (fun): cache = [] numargs = ...
fun curry f x y = f (x, y); весело uncurry f (x, y) = f x y; fun compose (f, g) x = f (g x); Я понимаю функцию compose, но не совсем понимаю curry и uncurry в ML. Кто-нибудь может это объяснить? ...
В Python считается лучшим стилем: явное определение полезные функции с точки зрения более общих функций, возможно внутреннего использования; или, Частичное применение функции (каррирование) по сравнению с явным определением функции В Pyt
Я пытаюсь понять преимущества каррирования над частичными приложениями в Scala. Обратите внимание на следующий код: def sum (f: Int => Int) = (a: Int, b: Int) => f (a) + f (b) def ...
I need a js sum function to work like this: sum(1)(2) = 3
sum(1)(2)(3) = 6
sum(1)(2)(3)(4) = 10 etc. I heard it can't be done. But heard that if adding + in front of sum can be done.
Like +sum(1)(2)...
В Python я хотел бы написать функцию make_cylinder_volume (r), которая возвращает другую функцию. Эта возвращаемая функция должна вызываться параметром h и возвращать объем цилиндра с помощью ...
Хотя я немного разбираюсь в каррировании в математическом смысле, частично применение инфиксной функции было новой концепцией, которую я обнаружил после погружения в книгу Learn You a Haskell для...
Небольшая часть кода, чтобы подчеркнуть проблему: открыть System.IO let do_smth i (stm : #System.IO.Stream) = // val do_smth : 'a -> #Stream -> unit (*....*) () type SomeOps = SomeOps с
...
Clojure великолепен, мы все это знаем, но не в этом суть. Мне интересно, каков идиоматический способ создания функций высшего порядка и управления ими в стиле Haskell. В Clojure я могу делать ...
Разве это определение не должно быть разрешено в ленивом языке, таком как Haskell, в котором функции каррируются? apply f [] = f apply f (x: xs) = apply (f x) xs Это в основном функция, которая применяет данный ...
При множественном сопоставлении с образцом -разное количество аргументов невозможно, даже если точка -свободна! foo Истинно b = b + 2 foo _= id не работает, например. Но foo True = (+2 )foo _= id делает....
Каким образом CPS в каррированных языках, таких как лямбда-исчисление или Ocaml, вообще имеет смысл? Технически все функции имеют один аргумент. Допустим, у нас есть CPS-версия сложения на одном из таких языков: cps-add k ...
Я веду обсуждение списков множественных параметров в Руководстве по стилю Scala, которое я поддерживаю. Я пришел к выводу, что есть два способа каррирования, и мне интересно, каковы варианты использования: def ...
Я делаю упражнения, в которых мне нужно добавить тип функции и объяснить, что она делает. Я застрял с этим: phy = uncurry ($) Тип, в соответствии с GHCi это phy :: (a -> b, a) -> b. Мой ...
Есть ли возможность проверить, является ли что-то частичной функцией в Clojure? Было бы лучше иметь что-то вроде (частично? (частично + 10)) ? Заранее спасибо