Вопросы по теме '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 просмотров
schedule
21.06.2022
Ошибка типа 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 просмотров
schedule
13.10.2023
Когда использовать бессмысленный стиль?
Многим программистам 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 просмотров
schedule
12.05.2022
Понимание операторов композиции 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 просмотров
schedule
14.04.2023
Безточечный стиль с инфиксной нотацией
Здравствуйте, есть ли способ написать безточечный стиль при использовании инфиксной нотации?
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 просмотров
schedule
18.07.2023