Вопросы по теме '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 просмотров
schedule
02.04.2023
Простые примеры для иллюстрации категории, моноида и монады?
Я очень запутался в этих трех концепциях.
Есть ли какие-нибудь простые примеры, иллюстрирующие различия между 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 просмотров
schedule
31.03.2022
Является ли 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 просмотров
schedule
09.03.2024