Описание тега function-composition

Применение одной функции к результату другой известно как композиция функций: `(fg)(x) = f(g(x))`
2 ответа

Состав функции Haskell, тип (.)(.) И способ ее представления.

Итак, я знаю, что: (.) = (f.g) x = f (g x) И это тип (B->C)->(A->B)->A->C Но как насчет: (.)(.) = _? = _? Как это представляется? Я думал о: (.)(.) = (f.g)(f.g)x = f(g(f(g x))) // this (.)(.) = (f.g.h)x = f(g(h x)) // or this Но насколько я пытался …
1 ответ

Составляющая функция с большей арностью в Рамде

Я с нетерпением пытаюсь изучить функциональное программирование в js, но мне трудно. Я чувствую, что постоянно делаю что-то вроде этого, а это совсем не так: export const getParamFromUrl = R.curry((name, url) => R.compose( R.match(new RegExp(`[?&…
4 ответа

Что происходит с точкой (.) В Haskell?

У меня возникают проблемы с пониманием того, как работает оператор композиции функций в Haskell. Я понимаю это в простых случаях, когда вы используете только функции, которые принимают один аргумент, но я не понимаю, что происходит, когда вы использ…
04 дек '14 в 19:57
2 ответа

Применение функции к произвольно длинному списку аргументов

Я хочу создать функцию apply, которая принимает функцию с произвольным количеством аргументов, а также список целых чисел и возвращает результат функции (где каждое целое число в списке является аргументом по порядку. Я думал что-то вроде: apply :: …
1 ответ

Пожалуйста, объясните, как работает функция compose в приставке

compose Функция в Redux по большей части очень проста, и я понимаю, как ее использовать. export default function compose(...funcs) { if (funcs.length === 0) { return arg => arg } if (funcs.length === 1) { return funcs[0] } return funcs.reduce((a,…
16 апр '17 в 01:07
1 ответ

Не могу получить бессмысленную запись для компиляции в Haskell

Это работает unique :: (a -> Bool) -> [a] -> Bool unique p xs = 1 == length (filter p xs) Но теперь я хочу это в виде: unique = (== 1) . length . filter Сообщение об ошибке: Couldn't match expected type `[a] -> Bool' with actual type `Bo…
03 сен '14 в 15:07
2 ответа

Композиция функций - Haskell

Опять же, еще один вопрос, вызванный моими попытками ответить на вопросы проекта Эйлера ( следуйте из предыдущего вопроса). У меня проблемы с пониманием следующей строки: print (maximum (map (product . take 13) (tails number))) конкретно map (produc…
2 ответа

Clojure фильтрующий состав с уменьшенным

У меня есть предикат высшего порядка (defn not-factor-of-x? [x] (fn [n] (cond (= n x) true (zero? (rem n x)) false :else true))) который возвращает предикат, который проверяет, не является ли данный аргумент n фактором x. Теперь я хочу отфильтровать…
6 ответов

Что означает точка с запятой, точка или точка (.) В Haskell?

Я действительно хотел бы, чтобы Google был лучше в поиске синтаксиса: decades :: (RealFrac a) => a -> a -> [a] -> Array Int Int decades a b = hist (0,9) . map decade where decade x = floor ((x - a) * s) s = 10 / (b - a)
21 мар '10 в 09:42
1 ответ

Составление последовательности функций переменных типов в Scala

Я пытаюсь применить последовательность преобразований к набору данных, где каждая функция берет выходные данные предыдущего шага и преобразует их для следующего шага. Например val f1: Function1[Int, Double] = _ / 2d val f2: Function1[Double, BigDeci…
1 ответ

Составление функций 'length' и 'elemIndices'

Я написал функцию count :: Char -> String -> Int который считает количество вхождений Char внутри String, Пример кода: module Main where import Data.List main :: IO () main = do print $ count 'a' "abcaaba" count :: Char -> String -> Int …
01 май '17 в 11:02
5 ответов

Что происходит, когда я пишу * с + в Haskell?

Я пытаюсь понять результат (*) . (+) в Хаскеле. Я знаю, что оператор композиции - это просто стандартная композиция математических функций, поэтому (f . g) = f (g x) Но: (*) . (+) :: (Num (a -> a), Num a) => a -> (a -> a) -> a -> a…
2 ответа

Как составить список функций для вызова

У меня есть простой источник. def h(x): return x + 1 def m(x): return x + 2 def n(x): return x * 10 def function_aggregator(fun_list, num): return_fun = None for fun in fun_list[::-1]: if return_fun: return_fun = fun(return_fun) else: return_fun = f…
20 дек '17 в 13:24
1 ответ

Как fmap fmap применяется к функциям (в качестве аргументов)?

Я пытаюсь понять как fmap fmap относится к такой функции, как, скажем, (*3), Тип fmap fmap: (fmap fmap):: (Functor f1, Functor f) => f (a -> b) -> f (f1 a -> f1 b) Тип (*3): (*3) :: Num a => a -> a Что означает, что подпись a ->…
4 ответа

Как "составить" функции, когда одна функция не дает 1 выходного параметра на 1 входной параметр?

Скажем, я хочу сочинять функции, такие как processResult а также sendResult, но я не могу просто связать их, потому что processResult может понадобиться позвонить sendResult 0,1,2 или n раз за каждый звонок processResult, Как правильно сделать это в…
05 июн '13 в 10:56
0 ответов

Как реализовать функцию pipe / compose?

Я пытаюсь написать функцию 'pipe', которая довольно проста в Javascript: const pipe = (...funcs) => val => ( funcs.reduce((acc, func) => func(acc), val) ) Пример использования: const sqrt = v => Math.sqrt(v); const half = v => v / 2; …
05 сен '18 в 12:06
3 ответа

Композиция монадических функций с цепочкой в ​​Java 8

Каким-то образом я должен быть в состоянии указать цепочку, как это, в то время как значение передается через каждую функцию. a::create -> a::processing -> a::updating -> a:uploading В контексте следующих статей я хочу связать методы одним …
0 ответов

Composing Action(BodyParser) с ActionFilter в игровой среде scala

У меня есть игровое приложение и проблемное действие. Я пытаюсь разобрать тело запроса с помощью parse.form а затем есть ActionFilter бежать против этого разобранного тела. Пока что у меня есть что-то вроде этого object ModelValidationAction extends…
1 ответ

Композиция родовых функций в Хаскеле

Я читал здесь и заметил, что, например, если у меня есть следующие определения функций: a :: Integer->Integer->Integer b :: Integer->Bool Следующее выражение недопустимо: (b . a) 2 3 Довольно странно, что функции композиции должны иметь тол…
29 дек '10 в 04:13
1 ответ

Используйте функцию a → b в качестве "монадической" функции a → m b

В настоящее время я играю с основами Haskell и наткнулся на следующий "вариант использования": ghci> let divideTenBy x | x == 0 = Nothing | otherwise = Just (10 / x) ghci> let composed = divideTenBy <=< return . (*10) <=< divideTen…
01 апр '12 в 03:08