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

Категориально двойственны ли монады Writer m и Либо e?
Я заметил, что существует двойственное отношение между монадами Writer m и Either e . Если m — моноид, то unit :: () -> m join :: (m,m) -> m может использоваться для формирования монады: return is composition: a -> ((),a)...
673 просмотров
schedule 18.03.2023

Напишите максимальный моноид с помощью Maybe в Haskell
Я изучал моноиды Haskell и их использование , что дало мне довольно хорошее понимание основ моноидов. Одна из вещей, представленных в сообщении блога, - это моноид Any, и его использование выглядит следующим образом: foldMap (Any . (== 1)) tree...
1511 просмотров
schedule 08.08.2023

Как реализовать моноидный интерфейс для этого дерева в haskell?
Прошу прощения за терминологию, у меня все еще не получается. Дерево: data Ftree a = Empty | Leaf a | Branch ( Ftree a ) ( Ftree a ) deriving ( Show ) У меня есть несколько вопросов: Если Ftree не может быть Empty , он больше...
1738 просмотров
schedule 17.04.2022

Как суммировать поток моноидных значений в Scala?
Предположим, я использую библиотеку Rng для простого моделирования методом Монте-Карло (как в этом post ). val d : Rng[Double] = double val point : Rng[(Double, Double)] = pair(d, d) val points = point.stream(1000) val tests =...
349 просмотров
schedule 14.08.2022

Складки над функциями - моноиды
Почему сгиб над длиной списка не является моноидом? length = foldr (\_ n -> 1+n) 0 Разве он не ассоциативен и имеет нейтральный элемент 0 , так что он должен быть моноидом?
100 просмотров
schedule 05.09.2022

Аппликативная реализация Const Monoid
instance Monoid m => Applicative (Const m) where pure _ = Const mempty Const f <*> Const v = Const (f `mappend` v) Я не понимаю, как определение типа <*> может проверять тип. С левой стороны f ограничивается...
208 просмотров
schedule 25.02.2023

Накопление ошибок с помощью Monoid
Предположим, у меня есть список функций E => Either[Exception, Unit] , которые нужно вызывать при событии E и накапливать ошибки для возврата Either[List[Exception], Unit] . type EventHandler = E => Either[Exception, Unit] import...
291 просмотров
schedule 26.06.2022

Отложенный ввод-вывод при добавлении
Возможно, у меня сложилось ложное впечатление, что Haskell ленивее, чем он есть на самом деле, но мне интересно, есть ли способ получить лучшее из обоих миров... Data.Monoid и Data.Semigroup определяют два варианта First . Моноидальная версия...
250 просмотров

Простая композиция имплицитов с моноидами в Scala
У меня есть следующая черта: import scalaz.Monoid trait Mapper[M, R] { def map(m: M): R } object Mapper { @inline implicit def listMapper[M, R] (implicit mapper: Mapper[M, R], s: Monoid[R]): Mapper[List[M], R] = (xs: List[M])...
46 просмотров
schedule 11.06.2022

Моноиды и Num в Haskell
Я изучал Haskell в течение последних нескольких месяцев и наткнулся на пример моноидов, который меня озадачил. Учитывая эти определения: data Tree a = Empty | Node a (Tree a) (Tree a) deriving (Show, Read, Eq) instance F.Foldable Tree where...
1247 просмотров
schedule 27.07.2022

Чем моноид на аппликативных функторах отличается от моноида в категории эндофункторов?
Возможно, ни одно из этих утверждений не является категорично точным, но монаду часто определяют как «моноид в категории эндофункторов»; определен Alternative Haskell как «моноид на аппликативных функторах», где аппликативный функтор - это...
1606 просмотров

Если структура данных складная, является ли она моноидом?
Очевидно, что если структура данных является моноидом, то она сворачиваема, но можно ли с уверенностью сказать, что если структура данных сворачиваема, то это моноид? https://en.wikibooks.org/wiki/Haskell/Foldable Если структура данных...
472 просмотров

Как соотносятся между собой операторная ассоциативность, ассоциативный закон и зависимость значений монад?
С одной стороны, монадический оператор привязки >>= является левоассоциативным (AFAIK). С другой стороны, закон монад требует ассоциативности, т.е. порядок вычислений не имеет значения (как в случае с моноидами). Кроме того, монады кодируют...
165 просмотров