Size: a a a

2021 December 13

SP

Stanislav Popov in Haskell Start
если вы обьясните как аргумент попадает сюда
(on x (&&) (not . isSpace x))
это могло бы быть меньшим цирком )
источник

[

[BRM]White Rabbit in Haskell Start
on :: (a -> a -> c) -> (a -> b) -> (b -> b -> c)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
on принимает функцию для двух аргументов и геттер
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Применяет эту функцию к результатам применения геттера к каждому из двух входных аргументов
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Обычно используется для сортировки или той же группировки
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Типа sortBy ((<) `on` fst)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
"Отсортировать по убыванию по первым элементам (пар)"
источник

AP

Aleksei (astynax) Pi... in Haskell Start
(on (&&) (not . isSpace)) x y
источник

AP

Aleksei (astynax) Pi... in Haskell Start
вот так аргументы попадают
источник

AP

Aleksei (astynax) Pi... in Haskell Start
not (isSpace x) && not (isSpace y)
вот это получается
источник

AP

Aleksei (astynax) Pi... in Haskell Start
тут скорее groupBy странный в Data.List, ибо группирует с помощью теста для двух аргументов :)
источник

SP

Stanislav Popov in Haskell Start
это понял. да. сильно. пример помог
((+) on f) x y = f x + f y
источник

SP

Stanislav Popov in Haskell Start
ладно. извините. я просто показал что это все для новичка не читается так как вы описали и есть проблемы с пониманием где композиция а где аргумент, и что кому отдается в плане типов
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Композируются функции одного аргумента. Передаётся он последним в то, что накомпозили.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
В примере выше даже не (f .) . g, где посложнее аргументы проследить, а обычная простая композиция
источник

SP

Stanislav Popov in Haskell Start
да, и если промахнуться с арностью функций можно извратить смысл полностью
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Для этого можно писать типы — для подстраховки. В REPL обычно функции простые и собираются из кусочков, здесь же, в REPL оттестированных.
источник

SP

Stanislav Popov in Haskell Start
я так кажется пытался реализовать тайпкласс не для типа а для функции на типе, и он даже прошел тайпчек
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Я ещё раз повторяю, как где-то выше писал: новичёк спросит, если ему интересно. И ему ответят. И выше того примера были несколько более простых.
источник

SP

Stanislav Popov in Haskell Start
ладно ладно сори за наброс
источник