Вопросы по теме 'pointfree'

Путаница в отношении каррирования и стиля без точек в Haskell
Я пытался реализовать функцию every :: (a -> IO Bool) -> [a] -> IO Bool который был темой для этого вопрос . Я попытался сделать это без явной рекурсии . Я придумал следующий код every f xs = liftM (all id) $ sequence $ map...
1656 просмотров
schedule 05.10.2022

Перевернутый / перевернутый fmap (‹$›)?
Я нашел определение следующего (%) = flip fmap Я могу написать такой код: readFile "/etc/passwd" % lines % filter (not . null) Для меня это имеет больше смысла, чем альтернатива: filter (not . null) <$> lines <$>...
3154 просмотров

Ошибка типа Haskell от функционального приложения к функциональной композиции
Этот вопрос связан с этим приложением функции VS Function Composition , на которое ответил antal s-z. Как это получить? map has type (a -> b) -> [a] -> [b] head has type [a] -> a map head has type [[a]] -> [a] Почему...
295 просмотров

Когда использовать бессмысленный стиль?
Многим программистам haskell, в том числе и мне, нравится бессмысленный стиль, особенно при написании сложных парсеров. Они делают код более читабельным и менее подробным. Но иногда бывает наоборот (например, когда злоупотребляют экземплярами Monad...
1426 просмотров
schedule 10.05.2023

Есть ли лучший способ выразить абсолютную функцию ошибки в бесточечной записи?
В точечной нотации: absoluteError x y = abs (x-y) Непонятный пример в бесточечной записи: absoluteError' = curry (abs . uncurry (-))
1339 просмотров
schedule 13.03.2022

Понимание сокращения Eta
При запуске hlint функция weightDelta постоянно предлагает уменьшить Eta. Я прочитал другой связанный с этим вопрос , но я не могу передать понимание в этом случае. module StackQuestion where import qualified Data.Vector as V type Weights =...
1157 просмотров
schedule 17.08.2022

Pointfree возвращает кортеж в Haskell
Может ли бесточечная функция вернуть кортеж? Например, можно ли записать в бесточечном стиле следующее (где определены f1, f2 и f3): (\t -> (f1 t, f2 t, f3 t)) В этом случае мои f1, f2 и f3 являются композициями quot, mod, * и некоторых...
674 просмотров
schedule 26.03.2022

Haskell: приложение функции сопоставления
Часть некоторых вычислений, которые я делаю в Haskell, приводит к списку функций, которые отображают Float в Float . Я хотел бы применить один аргумент ко всем этим функциям, например: -- x :: Float -- functions :: [Float -> Float] map (\f...
835 просмотров
schedule 19.06.2022

Функциональная композиция с многозначными функциями в haskell?
Мне было интересно, можно ли сделать функциональную композицию с функциями, которые принимают более одного аргумента. Я хочу иметь возможность сделать что-то вроде этого x = (+3).(*) установив x равным функции, которая прибавляет три к...
3618 просмотров
schedule 22.12.2022

Составление композиции функций: как работает (.).(.)?
(.) принимает две функции, которые принимают одно значение и возвращают значение: (.) :: (b -> c) -> (a -> b) -> a -> c Поскольку (.) принимает два аргумента, мне кажется, что (.).(.) должно быть недопустимым, но это...
2213 просмотров
schedule 15.11.2022

Особые случаи при обработке типов более высокого ранга в GHC?
Рассмотрим этот пример из сеанса GHCI: Prelude> :set -XRankNTypes Prelude> let bar :: (forall a.[a]->[a]) -> [Int]; bar f = f [1,2,3] Это определяет функцию bar с типом ранга 2. Следовательно, вывод типа не должен быть в...
117 просмотров

Понимание операторов композиции F#
Я хорошо разбираюсь в использовании операторов >> и << в F#. Однако после просмотра исходного кода F # для более глубокого понимания я запутался с этим: let inline (>>) f g x = g(f x) let inline (<<) f g x = f(g x)...
218 просмотров
schedule 09.02.2023

Можно ли преобразовать F# в бесточечный стиль?
Изучая тему, связанную с программированием, я наткнулся на pointfree инструмент рефакторинга для Haskell в лямбдаботе и интересно, можно ли преобразовать F # в бесточечный стиль? Я не защищаю использование бесточечного стиля, но рассматриваю его...
314 просмотров
schedule 09.01.2023

Переписать функцию Haskell без возврата привязки
По совету, который я получил здесь , я пытаюсь переписать функцию без постороннего назначения привязки и возврата, но застрял с дополнительный ввод-вывод, я не могу понять, как из него выбраться. У меня есть good :: IO (Either Int String)...
173 просмотров
schedule 02.08.2023

Использование помощника карты Ramda бесточечным способом
Как я могу изменить этот код: map(user => assoc('isAdult', isAdult(user), user) для работы без точек (используя Ramda). Я думал, как это сделать с помощью useWith , но не нашел работающей реализации. Любые идеи? import { pipe,...
219 просмотров

Безточечный стиль с инфиксной нотацией
Здравствуйте, есть ли способ написать безточечный стиль при использовании инфиксной нотации? f::Int->Int->Int->Int f a b=(+) (a+b) Почему вы не можете сделать что-то подобное? f::Int->Int->Int->Int f a b=(a+b) +...
197 просмотров
schedule 31.01.2023

Делаем что-то бесточечное в Ramda
Я узнаю о библиотеке JS Ramda прямо сейчас. И, кажется, есть шаблон, который я не могу правильно разрешить. Например, у меня есть этот код. const filterPayments = filter => payments => r.filter( r.allPass([ typePred(filter),...
161 просмотров
schedule 18.06.2023

Подсказывает ли использование правоприменительного оператора композиции, что можно использовать contramap?
Короче говоря Я блуждаю, должен ли я думать об использовании contramap , когда я пишу код, подобный (. f) . g , где f на практике выполняет предварительную обработку второго аргумента для g . Длинная история длиннее Я опишу, как я придумал...
78 просмотров