Вопросы по теме 'alternative-functor'

Haskell: некоторые и многие
Для чего some и many в Control.Applicative.Alternative ? Если я напишу что-то вроде some $ Just 42 , это вызовет бесконечную рекурсию, что не очень полезно ...
2262 просмотров

Определение MonadPlus для Haskell IO
Я просто писал небольшой код и хотел использовать защитная функция в монаде IO. Однако определения MonadPlus для ввода-вывода означает, что мы не можем использовать защиту в земле ввода-вывода. Я видел пример использования преобразователя...
2163 просмотров

Что мы можем сделать с Альтернативой, но не можем сделать с Моноидом?
Я прочитал Почему MonadPlus, а не Monad + Monoid? и понял теоретическую разницу , но я не могу понять практической разницы, потому что для List это выглядит одинаково. mappend [1] [2] == [1] <|> [2] да. Возможно, имеет разные...
310 просмотров

Ранний выход из монады состояния Haskell (охранник?)
У меня есть тип, который представляет состояние игры для моего приложения, для этого вопроса представьте, что это что-то простое, например: Game { points :: Int } Я определяю свою игровую логику с помощью монады State. type GameState a =...
1132 просмотров

Различие между классами типов MonadPlus, Alternative и Monoid?
Классы типов MonadPlus , Alternative и Monoid стандартной библиотеки Haskell предоставляют два метода с практически одинаковой семантикой: Пустое значение: mzero , empty или mempty . Оператор a -> a -> a , объединяющий значения...
6532 просмотров

Почему Guard основан на Альтернативе?
Почему guard основано на Alternative ? guard :: Alternative f => Bool -> f () -- guard b is pure () if b is True, -- and empty if b is False. Я спрашиваю, потому что guard использует только empty из Alternative . Он вообще не...
491 просмотров
schedule 04.01.2023

Можно ли преобразователю монады-продолжения дать альтернативный экземпляр с некоторыми и многими?
Мы можем определить преобразователь монады продолжения как data Cont r m a = Cont {run :: (a -> m r) -> m r} Мы можем дать Cont r m альтернативный экземпляр, если m является членом Alternative через empty = Cont $ \f ->...
543 просмотров

Haskell: анализ объекта, который может быть нескольких типов, в один тип
Я новичок в хаскеле, прохожу через aeson, узнаю больше об обоих, анализируя некоторые файлы данных. Обычно, когда есть файл данных, будь то .json , таблица lua , формат .csv или другие, и вы хотите их проанализировать, всегда есть вероятность...
339 просмотров

Аппликативный парсер застрял в бесконечном цикле
Я пытаюсь реализовать свой собственный парсер Applicative, вот код, который я использую: {-# LANGUAGE ApplicativeDo, LambdaCase #-} module Parser where -- Implementation of an Applicative Parser import Data.Char import Control.Applicative...
193 просмотров