Публикации по теме '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 просмотров

каррирование функции по сравнению с обычным методом обратного вызова
Я пытаюсь понять, чем метод программирования, известный как каррирование , отличается от обычного интерфейса обратного вызова (например, интерфейсов Observer / Observable в Java или классического шаблона проектирования Visitor). Я понимаю, что...
855 просмотров

Можно ли реализовать автокаррирование для языков семейства 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 просмотров

Составление композиции функций: как работает (.).(.)?
(.) принимает две функции, которые принимают одно значение и возвращают значение: (.) :: (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 просмотров

Как каррирование работает с лямбда-выражениями в 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 просмотров

Функция каррирования отменяет полиморфизм в 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