Вопросы по теме 'alternative-functor'
Haskell: некоторые и многие
Для чего some и many в Control.Applicative.Alternative ? Если я напишу что-то вроде some $ Just 42 , это вызовет бесконечную рекурсию, что не очень полезно ...
2262 просмотров
schedule
20.10.2021
Определение MonadPlus для Haskell IO
Я просто писал небольшой код и хотел использовать защитная функция в монаде IO. Однако определения MonadPlus для ввода-вывода означает, что мы не можем использовать защиту в земле ввода-вывода. Я видел пример использования преобразователя...
2163 просмотров
schedule
24.08.2022
Что мы можем сделать с Альтернативой, но не можем сделать с Моноидом?
Я прочитал Почему MonadPlus, а не Monad + Monoid? и понял теоретическую разницу , но я не могу понять практической разницы, потому что для List это выглядит одинаково.
mappend [1] [2] == [1] <|> [2]
да. Возможно, имеет разные...
310 просмотров
schedule
26.08.2022
Ранний выход из монады состояния Haskell (охранник?)
У меня есть тип, который представляет состояние игры для моего приложения, для этого вопроса представьте, что это что-то простое, например:
Game { points :: Int }
Я определяю свою игровую логику с помощью монады State.
type GameState a =...
1132 просмотров
schedule
18.09.2022
Различие между классами типов MonadPlus, Alternative и Monoid?
Классы типов MonadPlus , Alternative и Monoid стандартной библиотеки Haskell предоставляют два метода с практически одинаковой семантикой:
Пустое значение: mzero , empty или mempty .
Оператор a -> a -> a , объединяющий значения...
6532 просмотров
schedule
24.03.2023
Почему 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 просмотров
schedule
18.10.2022
Haskell: анализ объекта, который может быть нескольких типов, в один тип
Я новичок в хаскеле, прохожу через aeson, узнаю больше об обоих, анализируя некоторые файлы данных.
Обычно, когда есть файл данных, будь то .json , таблица lua , формат .csv или другие, и вы хотите их проанализировать, всегда есть вероятность...
339 просмотров
schedule
15.12.2022
Аппликативный парсер застрял в бесконечном цикле
Я пытаюсь реализовать свой собственный парсер Applicative, вот код, который я использую:
{-# LANGUAGE ApplicativeDo, LambdaCase #-}
module Parser where
-- Implementation of an Applicative Parser
import Data.Char
import Control.Applicative...
193 просмотров
schedule
17.04.2023