Публикации по теме 'currying'
Каррирование и композиция функций в Javascript
Каррирование и композиция функций в Javascript
Поскольку мы все больше и больше слышим о функциональном программировании в основной среде JavaScript, каррированные функции стали более распространенными во многих приложениях. Очень важно иметь четкое представление о том, что они из себя представляют, как они работают и как применять их в качестве оптимального способа использования.
Интересный факт: Каррирование названо в честь математика Haskell Curry , а не еда :)
Что такое..
Вопросы по теме 'currying'
Новичок: каррированные функции в схеме
Я использую лекции и текст SICP, чтобы узнать о Scheme самостоятельно. Я смотрю на упражнение, в котором говорится: «Применение выражения E является выражением формы (E E1,... En). Это включает случай n = 0, соответствующий выражению (E)....
5692 просмотров
schedule
13.06.2022
Путаница в отношении каррирования и стиля без точек в Haskell
Я пытался реализовать функцию
every :: (a -> IO Bool) -> [a] -> IO Bool
который был темой для этого вопрос . Я попытался сделать это без явной рекурсии . Я придумал следующий код
every f xs = liftM (all id) $ sequence $ map...
1656 просмотров
schedule
05.10.2022
Что такое каррирование в функциональном программировании?
Писать как непереконструированный императивный и объектно-ориентированный программист ...
В последнее время возился с Erlang, а также с Haskell. Мне нравится Erlang, но насчет Haskell еще не уверен. Функциональность больше похожа на математику,...
13551 просмотров
schedule
25.12.2023
Можно ли в Scala сделать наоборот?
Предположим, что эта функция:
def autoClosing(f: {def close();})(t: =>Unit) = {
t
f.close()
}
и этот фрагмент:
val a = autoClosing(new X)(_)
a {
println("before close")
}
можно ли прокачать первую часть? Что-то типа:...
674 просмотров
schedule
08.07.2023
Два способа определения функций в Scala. В чем разница?
Вот небольшой сеанс Scala, в котором определяются и тестируются некоторые функции:
scala> def test1(str: String) = str + str;
test1: (str: String)java.lang.String
scala> test1("ab")
res0: java.lang.String = abab
работает хорошо....
34928 просмотров
schedule
07.05.2023
Переработан цикл над контейнером STL для использования функциональных методов.
У меня есть std::vector объектов указателей Person , которые имеют функцию-член std::string getName() const . Используя алгоритмы STL, я хочу подсчитать все объекты Person в векторе, где getName() возвращает «Чад».
Поведение, просто...
603 просмотров
schedule
11.01.2023
Поддерживает ли Java каррирование?
Мне было интересно, есть ли способ вытащить это на Java. Я думаю, что это невозможно без встроенной поддержки замыканий.
35948 просмотров
schedule
18.02.2022
каррирование функции по сравнению с обычным методом обратного вызова
Я пытаюсь понять, чем метод программирования, известный как каррирование , отличается от обычного интерфейса обратного вызова (например, интерфейсов Observer / Observable в Java или классического шаблона проектирования Visitor).
Я понимаю, что...
855 просмотров
schedule
23.12.2022
Можно ли реализовать автокаррирование для языков семейства Lisp?
То есть, когда вы вызываете функцию с арностью> 1 только с одним аргументом, она должна вместо отображения ошибки каррировать этот аргумент и возвращать результирующую функцию с уменьшенной арностью. Возможно ли это сделать с помощью макросов Лиспа?
2731 просмотров
schedule
23.11.2023
scala currying/partials для создания списка фильтров функций
Учитывая следующий код:
case class Config(
addThree: Boolean = true,
halve: Boolean = true,
timesFive: Boolean = true
)
def doOps(num: Integer, config: Config): Integer = {
var result: Integer = num
if ( config.addThree ) {
result...
556 просмотров
schedule
10.02.2024
Scala: типизированный метод, возвращающий подтип
Я пытаюсь написать функцию, которая возвращает частично примененную функцию, которая возвращает подтип определенного абстрактного класса.
У меня есть абстрактный класс
abstract class IsoBoxReader
У меня есть производный класс
class...
1462 просмотров
schedule
22.03.2023
Частичное применение функции с неявным параметром
Могу ли я превратить метод, который принимает неявный параметр, в функцию?
trait Tx
def foo(bar: Any)(implicit tx: Tx) {}
foo _ // error: could not find implicit value for parameter tx: Tx
Я пытаюсь добиться следующего, желательно, если я...
3461 просмотров
schedule
13.10.2022
Составление композиции функций: как работает (.).(.)?
(.) принимает две функции, которые принимают одно значение и возвращают значение:
(.) :: (b -> c) -> (a -> b) -> a -> c
Поскольку (.) принимает два аргумента, мне кажется, что (.).(.) должно быть недопустимым, но это...
2213 просмотров
schedule
15.11.2022
Как вы выполняете любую функцию javascript произвольной арности?
Скажем, у меня есть некоторая функция:
function g(a,b,c){ return a + b + c }
И я хотел бы превратить его в форму "карри" (в кавычках, поскольку это не совсем карри как таковое):
function h(a,b,c){
switch(true){
case (a !==...
3693 просмотров
schedule
29.05.2022
Как каррирование работает с лямбда-выражениями в Haskell?
Просто посмотрите, как вы изучите Haskell (отличная работа) и в разделе каррированные функции есть пример, в котором говорится, что следующие две функции одинаковы:
addThree x y z = x + y + z
addThree = \x -> \y -> \z -> x + y + z...
227 просмотров
schedule
06.08.2022
Каррирование/связывание с ISO C99
Скажем, я хочу реализовать процедуру численного интегрирования на простом C. Это будет выглядеть примерно так:
double integrate(double (*f)(double), double lower, double upper, double step));
Я часто нахожу функции, которые на самом деле...
287 просмотров
schedule
21.03.2022
понимание scala: каррирование
Недавно я начал изучать Scala и наткнулся на каррирование. Из ответа в этом post этот фрагмент кода
def sum(a: Int)(b: Int) = a + b
расширяется до этого
def sum(a: Int): Int => Int = b => a + b
Затем я увидел фрагмент из...
483 просмотров
schedule
10.04.2022
Scheme/DrRacket - функция сопоставления с foldr
Мне нужно написать свою собственную функцию карты, используя foldr.
Самое простое решение, которое приходит на ум:
(define (my-map f lst)
(foldr (lambda (x y) (cons (f x) y)) empty lst))
Однако я должен сделать это без использования...
1665 просмотров
schedule
25.09.2023
Каррирование функций в Java
def check( x: Int, y: Int) (z: Int) = {
x+y+z
} //> check: (x: Int, y: Int)(z: Int)Int
def curried = check _ //> curried: => (Int, Int) => Int => Int
def z =...
371 просмотров
schedule
24.12.2023
Функция каррирования отменяет полиморфизм в OCaml?
У меня есть функция:
let rec loop size elem =
if size <= 0 then []
else elem::( loop (size - 1) elem);;
И если я наберу это в utop, я получу ожидаемый тип int -> 'a -> 'a list = <fun> , однако, если я сделаю функцию...
121 просмотров
schedule
04.06.2023