Я ищу способ использовать функцию в качестве аргумента другой функции в GLSL. В обычном C это можно смоделировать, передавая указатель функции в качестве аргумента функции. Также кажется, что другие ...
Итак, у меня есть простая библиотека событий, написанная на C ++ и использующая библиотеки Boost. Я хотел открыть указанную библиотеку для Python, поэтому, естественно, я обратился к Boost :: Python. У меня есть код для компиляции ...
Недавняя активность в блоге Haskell1 вдохновила меня попробовать свои силы в написании Forth-подобного DSL на Haskell. Принятый мной подход одновременно прост и запутан: {-# LANGUAGE ...
Я пытаюсь создать функцию типа: liftSumthing :: ((a -> mb) -> mb) -> (a -> tmb) -> tmb, где t - преобразователь монад. В частности, меня интересует следующее: ...
В настоящее время я изучаю курс функционального программирования, и меня очень забавляет концепция функций и функций высшего порядка как граждане первого класса. Однако я пока не могу думать о многих практически ...
Я только что нашел следующее выражение лямбда-исчисления: (((λ f . (λ x . (f x)))) (λ a . a)) (λ b . b)) То есть это функция, которая принимает аргумент f и возвращает другую функцию, которая принимает аргумент ...
Использование функций высшего порядка и лямбд улучшает или ухудшает время работы и эффективность памяти?
Например, чтобы перемножить все числа в списке : nums = [1,2,3,4,5]
prod = 1
for n in nums: ...
У меня есть список документов, где у документа есть владелец, которым является пользователь. Каков наиболее элегантный способ преобразования этого списка в карту пользователей к списку документов, которыми они владеют? Итак, для ...
Можно ли построить функцию более высокого порядка isAssociative, которая принимает другую функцию двух аргументов и определяет, является ли эта функция ассоциативной? Аналогичный вопрос, но для других ...
Java Method Class и Java 7's MethodHandle Class оба относятся к объектам, которые связаны с методами, но все же они редко используются, и когда функцию нужно передать другой, это ...
Я пытаюсь решить очевидную задачу: var maxVal = [1, 2, 3, 4, 5] .reduce ( Math.max, 0); и в результате получаем: NaN. Чтобы она работала, мне нужно сделать анонимную функцию таким образом: var maxVal = [1, 2, 3 ,...
Имея два простых класса, принимающих Int в качестве аргумента: case class Foo (i: Int) class Bar (j: Int), я могу сказать: List (1,2,3) map Foo Что отлично работает и эквивалентно более подробному: List (1, ...
Я хочу многократное применение функции simplify' до тех пор, пока результат не станет "стабильным" (т.е. simplify'(x) == x): simplify :: Expr -> Expr
simplify expr = let iterations = iterate simplify' expr ...
Я новичок в Haskell и относительный новичок в функциональном программировании.
В других (помимо Haskell) языках лямбда-формы часто очень полезны. Например, в схеме Scheme: (define (производное-ок) ...
Я читал о комбинаторах и видел, насколько они полезны (например, в Parsec Haskell). Моя проблема в том, что я не совсем уверен, как их использовать на практике. Вот краткое описание ...
у меня есть алгебраический тип данных с некоторыми конструкторами, которые держат сопоставимые значения и некоторых конструкторов, которые не делают. Я записал некоторые функции сравнения, которые работают как стандарт (==) и (/=)...
Обновление: допустимо, если этот метод не является потокобезопасным, но мне интересно узнать как бы сделать его потокобезопасным. Кроме того, я не хочу блокировать один объект для всех значений ключа, если я ...
Я искал способ определения fold для неизменяемого объекта. Set: def fold [A1>: A] (z: A1) (op: (A1, A1) ⇒ A1): A1, но foldLeft определяется как: def foldLeft [B] (z: B) (op: (B, A) ⇒ B): B Это выглядит. ..
If I define a function that returns a function like this: (defn add-n [n] (fn [x] (+ x n))) I can then assign the result to a symbol: (def add-1 (add-n 1)) and call it: (add-1 41)
;=> 42 ...
I ' Мне нравится составлять функции определенным образом. Пожалуйста, рассмотрите эти 2 функции в псевдокоде (не F #) F1 = x + y
F2 = F1 * 10 // обратите внимание, что я не указывал аргументы для F1, 'обратное карри' из-за отсутствия ...
I ' Мы где-то читали, что полиморфизм более высокого порядка нельзя использовать / реализовать в системах типов с типами значений (например, .NET). Это правильно и почему?
Дана функция: min (A, B), когда A = А;
min (_A, B) -> B. Могу ли я использовать это в функции foldlin аналогичным образом: списки: foldl (fun min / 2, 0, [1,2,3,4,5,6,7, 8,9, ...
Рассмотрим этот класс: case class Person (val firstName: String, val lastName: String, age: Int) val people = Person ("Jane", "Doe", 42) :: Person ("John", "Doe", 45) :: Person ("Joe", "...
if I specify the (I think) correct type for a high order function the OCaml compiler rejects the second usage of that function. The code let foo ():string = let f: ('a -> string) -> 'a -> ...
Как Вы, возможно, знаете, в OCaml есть функции более высокого порядка, такие как fold_left, fold_right, filter и т.д. На моем курсе функционального программирования была введена функция с именем fold_tree, которая ...
Я пытаюсь назвать то, что я считаю новым идея функции высшего порядка. Важная часть - это код на Python и Haskell, демонстрирующий концепцию, которая будет объяснена позже.
...
Имеет ли стандартная библиотека C ++ и / или Boost что-то похожее на функцию фильтра, обнаруженную в функциональных языках? Самая близкая функция, которую я мог найти, была std :: remove_copy_if, но, похоже, она делает ...