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

Монада - это просто моноид из категории эндофункторов, в чем проблема?
Кто первым сказал следующее? Монада - это просто моноид из категории эндофункторов, в чем проблема? И менее важное замечание: верно ли это, и если да, то не могли бы вы дать объяснение (надеюсь, такое, которое сможет понять тот, кто не...
178297 просмотров
schedule 08.06.2023

Группировать значения по ключу с любым моноидом
Я хотел бы написать метод mergeKeys , который группирует значения в Iterable[(K, V)] по ключам. Например, я мог бы написать: def mergeKeysList[K, V](iter: Iterable[(K, V)]) = { iter.foldLeft(Map[K,...
642 просмотров
schedule 04.05.2023

моноид против монады в Scala
Недавно я попытался найти хороший источник о разнице между монадами и моноидами. Может ли кто-нибудь дать ссылку на хороший ресурс по этому поводу или, возможно, выделить время, чтобы подробно рассказать о сходствах / различиях?
12421 просмотров

Простые примеры для иллюстрации категории, моноида и монады?
Я очень запутался в этих трех концепциях. Есть ли какие-нибудь простые примеры, иллюстрирующие различия между Category, Monoid и Monad? Было бы очень полезно, если бы была иллюстрация этих абстрактных понятий.
3616 просмотров
schedule 24.10.2023

индексная функция для сбалансированного бинарного дерева
У меня проблема, я не могу понять, как я должен решить, какое поддерево моя функция indexJ должна выбирать на каждом шаге моего сбалансированного двоичного дерева - JoinList . Идея состоит в том, чтобы кэшировать размер (количество элементов...
366 просмотров
schedule 18.06.2022

Откуда берутся реализации Foldable foldl / foldr для двоичных деревьев в haskell?
Я работаю над Learn You a Haskell, и я нахожусь в разделе, посвященном моноидам. В этом разделе автор определяет метод foldMap для дерева следующим образом: instance F.Foldable Tree where foldMap f Empty = mempty foldMap f (Node x l...
1501 просмотров
schedule 18.10.2022

Складная моноидная роза Haskell
Мне нужно сделать складной экземпляр для структуры данных розового дерева: data Rose a = a :> [Rose a] deriving (Eq, Show) Со следующими моноидами и классами/экземплярами, связанными с розами: instance Functor Rose where fmap f...
2727 просмотров
schedule 14.08.2022

Откуда Foldable знает реализацию mappend
Я изучаю Haskell с помощью " http://learnyouahaskell.com ". Я следую примеру BST ( Двоичное дерево поиска ), которое является экземпляром Foldable : data Tree a = Nil | Node a (Tree a) (Tree a) deriving (Show, Read, Eq) instance F.Foldable Tree...
152 просмотров
schedule 24.12.2022

Haskell: Лучший способ написать Maybe Endo?
Я только что обнаружил тип Endo благодаря network-api-support package, и я обнаружил, что необходимо иметь возможность добавлять значения Maybe в Endo. В результате я написал функцию с именем mayEndo. Вот пример его использования: setProxy ::...
324 просмотров
schedule 31.05.2023

Почему нет альтернативного экземпляра для Control.Applicative.Const?
Существует экземпляр Monoid a => Monoid (Const a b) для Const функтор из Control.Applicative . Также есть экземпляр Monoid m => Applicative (Const m) . Поэтому я ожидаю, что также существует экземпляр Monoid m => Alternative...
454 просмотров

Является ли Monoid[String] действительно моноидом в scala?
В настоящее время я изучаю теорию категорий в scala, и закон ассоциативности говорит (x + y) + z = x + (y + z) Это нормально при работе с более чем двумя значениями ("Foo" + "Bar") + "Test" == "Foo" + ("Bar" + "Test") // true В...
334 просмотров
schedule 16.09.2022

Кошки Clojure добавляют нулевое поведение
Я использую funcool/cats , добавляю моноид со следующим кодом: (m/mappend (maybe/just [1 2 3]) nil (maybe/just [4 5 6]) (maybe/nothing)) ;;=> #<Just [1 2 3 4 5 6]> Каково обоснование...
102 просмотров
schedule 21.07.2022

Почему Monoid не является обязательным требованием для foldr / foldl?
Я смотрю на класс Foldable в Haskell. Для двух методов fold , foldMap требуется экземпляр Monoid. Но у foldr или foldl нет такого ограничения. fold :: Monoid m => t m -> m foldMap :: Monoid m => (a -> m) -> t a -> m...
538 просмотров
schedule 03.07.2023

Haskell: как написать экземпляр `Monoid` для чего-то, что зависит от параметров
Я работаю над небольшой библиотекой для университета, которая выполняет целочисленные вычисления в циклической группе ; Вещи как: (3 (% 11)) + (10 (% 11)) --> (2 (% 11)) 'Целые числа (% n)' явно образуют моноид при добавлении с '0 (%...
592 просмотров
schedule 30.05.2022

Почему scalaz |+| оператор не работает только с картами, значением которых является Seq?
У меня есть две карты следующим образом. import scalaz._, Scalaz._ val map1: Map[String, Seq[String]] = Some value val map2: Map[String, Seq[String]] = Somve Value Это компилируется нормально, и все работает так, как ожидалось. //...
540 просмотров
schedule 20.12.2022

Как сделать фантомный аппликативный функтор в PureScript?
Я читаю этот документ , и в нем говорится, что Моноиды - это фантомные аппликативные функторы. Я попытался настроить фантомный тип в purescript, но получаю ошибку типа в экземпляре Functor. Я предполагаю, что компилятор не знает, что a...
135 просмотров
schedule 07.06.2024

Какова идентичность типа?
У меня есть следующий тип данных: data Bull = Fools | Twoo deriving (Eq, Show) и используйте Monoid для его реализации: instance Monoid Bull where mempty = Fools mappend _ _ = Fools Как видите, mempty — это функция...
475 просмотров
schedule 05.05.2024

Является ли эксклюзивный или моноид для Bools?
Я сделал для xor-функции оператор, он выглядит так: op :: Integer -> Integer -> Maybe Integer op x y | x == 0 && y == 0 = Just 0 | x == 0 && y == 1 = Just 1 | x == 1 && y == 0 = Just 1 | x == 1 && y ==...
470 просмотров
schedule 26.02.2023

Аппликативный экземпляр пытается использовать моноидальные функторы
Я изучаю Haskell и пытаюсь выполнять упражнения из книги Программирование на Haskell из первых принципов, и я пытаюсь написать аппликатив для типа Pair data Pair a = Pair a a deriving Show Я видел несколько других примеров в сети, но я...
259 просмотров
schedule 04.07.2023

Что такое бинарный оператор Function Monoids в примере JavaScript
В этой статье моноиды функций представлены с кодом C # и типом Haskell определение. Функция a -> b является моноидом, если b является моноидом. Это означает, что вы можете комбинировать две функции одного типа. В...
204 просмотров