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

Foldr / Foldl бесплатно, когда Tree реализует Foldable foldMap?
Я новичок в Haskell и учусь по "Learn You a Haskell". Я кое-что не понимаю в Tree реализации Foldable . instance F.Foldable Tree where foldMap f Empty = mempty foldMap f (Node x l r) = F.foldMap f l `mappend`...
1099 просмотров
schedule 31.01.2023

Откуда 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

Почему я не могу сделать `null (Just 5)` в Haskell?
В документации Hackage для Maybe Foldable указан как один из классов типов Maybe. Также перечислены следующие функции: null :: Maybe a -> Bool Он даже ссылается на реализацию этой функции (из Foldable ): null :: t a -> Bool null =...
179 просмотров
schedule 18.07.2022

Складной против проходного
Изучая Applicative глубже, я пришел к Traversable . Хотя я уже знал Foldable из LYHGG , я еще не видел первого, поэтому я начал читать вики Haskell о Traversable . Пока читал, понял, почему Foldable.fold параллельно...
1946 просмотров

Почему 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

Складной, Моноид и Монада
Рассмотрим следующую подпись foldMap foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m Это очень похоже на "привязку", только с заменой аргументов: (>>=) :: Monad m => m a -> (a -> m b) -> m b...
2441 просмотров
schedule 14.08.2022

Нет экземпляра для Foldable, возникающего из-за длины внутри лямбды
первый вопрос здесь и полностью новичок в haskell, поэтому, пожалуйста, будьте добры со мной :) Я играл с вопросом номер 6 из этого упражнения haskell и в конце концов пришел к решению (или, надеюсь, что-то подобное) с этим кодом...
786 просмотров
schedule 16.10.2022

Если карта может быть определена с помощью Foldable, почему Functor не упоминается в определении Foldable?
Я читал, что map можно определить с помощью foldr , т.е. это примитивная рекурсивная функция. По крайней мере для списков. Теперь мой вопрос: почему Functor не является подклассом Foldable? И если fmap можно определить только в терминах...
152 просмотров
schedule 11.04.2023

Есть ли вообще эквивалент головы/хвоста для функторов Foldable?
Я хотел бы выразить следующий код Haskell, используя только алгебру функторов (т. е. - не полагаясь на какой-либо конкретный тип контейнера, такой как List ): ys = zipWith (+) (head xs : repeat 0) (tail xs ++ [y]) Мне...
271 просмотров
schedule 01.03.2023