Публикации по теме 'function-composition'
Композиция функций в JavaScript
JavaScript полон причудливых терминов, подъема, каррирования, принуждения и многого другого. Что может немного напугать новичков. Одной из таких концепций JS является композиция функций. Этот блог представляет собой попытку изложить концепцию, лежащую в основе этого, с простотой JS, приукрашенной композицией функций.
Теперь вам может быть интересно, каково определение композиции функций!
Композиция функций - это процесс объединения двух или более функций для создания новой..
Напишите свою собственную функцию groupBy и функцию агрегирования/свертывания в Javascript. Часть 2
Эта статья является продолжением моей прошлой статьи, в которой я создал собственную функцию groupBy , написанную на машинописном языке. Я расширю некоторые функциональные возможности группировки, а также свяжу сгруппированные значения на основе некоторой функции. Мы напишем нашу функцию fold декларативно. Давайте посмотрим на SQL-запрос, чтобы сложить некоторые сгруппированные значения:
В приведенном выше SQL-запросе AVG представляет собой функцию агрегирования/свертывания,..
Вопросы по теме 'function-composition'
В чем разница между . (точка) и $ (знак доллара)?
В чем разница между точкой (.) и знаком доллара ($) ?
Насколько я понимаю, они оба являются синтаксическим сахаром из-за того, что не нужно использовать круглые скобки.
182778 просмотров
schedule
19.01.2024
Haskell: не удается составить функцию с двумя плавающими аргументами
Я пытаюсь составить функцию типа (Floating a) => a -> a -> a с функцией типа (Floating a) => a -> a , чтобы получить функцию типа (Floating a) => a -> a -> a . У меня такой код:
test1 :: (Floating a) => a -> a...
1315 просмотров
schedule
01.11.2022
Объединить 2 функции списка в 1?
Как бы я объединил следующие 2 функции:
replaceNth n newVal (x:xs)
| n == 0 = newVal:xs
| otherwise = x:replaceNth (n-1) newVal xs
replaceMthNth m n v arg = replaceNth m (replaceNth n v (arg !! m)) arg
в одну функцию?
Является ли это...
189 просмотров
schedule
29.03.2023
Комбинация бесточечных функций в Python
У меня есть некоторые предикаты, например:
is_divisible_by_13 = lambda i: i % 13 == 0
is_palindrome = lambda x: str(x) == str(x)[::-1]
и хотите логически объединить их, как в:
filter(lambda x: is_divisible_by_13(x) and is_palindrome(x),...
2875 просмотров
schedule
26.11.2022
Правила перезаписи Haskell и композиция функций
Почему Haskell требует нескольких правил перезаписи в зависимости от метода композиции функции и ее длины? Есть ли способ избежать этого?
Например, учитывая следующий код...
{-# RULES
"f/f" forall a. f ( f a ) = 4*a
#-}
f a = 2 * a
это...
729 просмотров
schedule
10.06.2024
Подсказка по составу функций
просто ищу объяснение, как работает следующая композиция:
(=<<) . return
где
(=<<) :: (a -> m b) -> m a -> m b
return :: a -> m a
(.) :: (b -> c) -> (a -> b) -> a -> c
Окончательный тип:...
351 просмотров
schedule
03.07.2022
Бесточечная композиция с несколькими переменными
Я начал обдумывать это, и мне нравится использовать его для простых ситуаций, в которых я могу по существу передавать значения с одного выхода на один вход. Простым примером бесточечной композиции, с которой мне удобно, будет:
let joinLines =...
1393 просмотров
schedule
25.12.2022
карта . композиция функций папки - Haskell
Итак, давайте сразу к делу.
:t (map.foldr)
(map.foldr) :: (a1 -> a -> a) -> [a] -> [[a1] -> a]
Что такое [[a1] -> a]? Я действительно пытаюсь понять эту композицию, поэтому я делал это:
-- map.foldr
map.foldr :: (a1...
2553 просмотров
schedule
29.05.2023
Составление функций в Haskell с функциями арифметического типа
Сейчас я изучаю Haskell и пытаюсь поиграть с композицией функций.
Я написал две функции.
let func1 x y = x + y
let func2 t = t*2
Однако, когда я пытаюсь скомбинировать эти две функции, func2 . func1 1 2 я ожидаю получить 6.
Вместо...
143 просмотров
schedule
01.06.2022
Состав функций 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...
2222 просмотров
schedule
08.08.2023
Композиция функций с forall
Может кто-нибудь объяснить мне, почему следующее не работает?
foo :: Int -> ST s Int
foo = return
bar :: (forall s. ST s Int) -> Int
bar = runST
baz :: Int -> Int
baz = bar . foo
Ошибка выдается для `баз:
Couldn't match type...
35 просмотров
schedule
24.12.2022
Привязать немонадные функции к монаде
Может быть, это часто задаваемый вопрос, но я не нашел ответа.
Связывание монады определяется следующим образом:
(>>=) :: m a -> (a -> m b) -> m b
На данный момент я делаю это:
foo :: Int
foo = sum $ ((*11) . (+2))...
144 просмотров
schedule
14.06.2022
Haskell: вложенные скобки против точечной записи
Задача 2 проекта Эйлер гласит: каждый новый член последовательности Фибоначчи генерируется путем сложения двух предыдущих членов. Начиная с 1 и 2, первые 10 членов будут:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Рассмотрев члены...
331 просмотров
schedule
13.05.2023
Ошибка компилятора при использовании композиции функций: невозможно преобразовать значение типа `([Character]) -> String` в ожидаемый › тип аргумента `_ -> _`
Я играю с пользовательским оператором >>> для композиции функций, который предлагается здесь .
Я определил следующее:
infix operator >>> { associativity left }
func >>> <A, B, C>(f: B -> C, g: A -> B)...
186 просмотров
schedule
08.05.2023
Haskell и композиция функций
Я изучал базовую композицию функций в Haskell, и пока я играл, я понял кое-что, что не могу объяснить. Когда я использую следующий блок кода, компилятор, кажется, доволен этим и работает нормально:
doSomeX x = if x==7 then True else False
doSomeY...
103 просмотров
schedule
22.11.2022
Преобразователи монад Скалаз. Применение функции f1:A =› G[B], f2:B =› G[C] к объекту F[G[A]]
У меня есть две (или более) функции, определенные как:
val functionM: String => Option[Int] = s => Some(s.length)
val functionM2: Int => Option[String] = i => Some(i.toString)
У меня также есть некоторые данные, определенные как:...
403 просмотров
schedule
31.12.2023
Составить функцию с двумя аргументами
Сегодня я столкнулся с чем-то, что сбило меня с толку. Я пытался определить функцию, эквивалентную Data.Text.commonPrefixes , который отбрасывает все, кроме префикса.
Следующие работы:
commonPrefix :: Text -> Text -> Maybe Text...
44 просмотров
schedule
02.11.2022
Составление функции с более высокой арностью в Ramda
Я с нетерпением пытаюсь изучить функциональное программирование в js, но мне трудно. Мне кажется, что я постоянно делаю что-то вроде этого, что совсем не кажется правильным:
export const getParamFromUrl = R.curry((name, url) => R.compose(...
397 просмотров
schedule
21.10.2023
Как согласовать Javascript с каррированием и композицией функций
Я люблю каррирование, но есть несколько причин, по которым многие разработчики Javascript отвергают эту технику:
эстетические опасения по поводу типичного рисунка карри: f(x) (y) (z)
опасения по поводу снижения производительности из-за...
341 просмотров
schedule
29.03.2023
Составление функций length и elemIndices
Я написал функцию count :: Char -> String -> Int , которая подсчитывает количество вхождений Char внутри String . Пример кода:
module Main where
import Data.List
main :: IO ()
main = do
print $ count 'a' "abcaaba"
count ::...
97 просмотров
schedule
04.11.2022