Описание тега reader-monad
0
ответов
Скотти и Читатель Монада
Я пытаюсь добавить монаду Reader в свое приложение Scotty, чтобы иметь единый корневой путь для внутреннего расширения URL. Кажется, я не могу понять, как Скотти справляется с трансформацией монады - обычно я просто вижу что-то вроде runTransformerT…
05 дек '14 в 14:22
1
ответ
Я знаю, как использовать это, но я не понимаю точно, как это делает (Монада Читателя)
Рассмотрим следующий код (с пропущенными очевидными частями) main = do let s = "123456"; let len = runReader calculateContentLength s putStrLn $ "Original 's' length: " ++ (show len) calculateContentLength :: Reader String Int calculateContentLength…
24 авг '14 в 20:51
3
ответа
Читатель Монады разъяснения
Я пытаюсь понять смысл монады читателя, но не могу понять, что связывает (>>=) с этой монадой. Вот реализация, которую я анализирую: newtype Reader e a = Reader { runReader :: (e -> a) } instance Monad (Reader e) where return a = Reader $ \e ->…
21 янв '18 в 18:05
1
ответ
Изменить ST-зависимую среду в ReaderT - проблема с функцией `local`
Этот вопрос является продолжением этой темы: /questions/16491943/neyavnoe-vyipolnenie-stref-v-srede-vo-vremya-vyichislenij/16491953#16491953 Я спрашивал там о проведении STRef в ReaderTсреда и выполнение ST-действий под ней. Моя установка теперь выг…
26 янв '19 в 11:41
1
ответ
Предпочитая монаду Reader по прямой передаче среды в качестве параметров
Я писал базовое приложение CRUD на Haskell, используя библиотеки Servant и Opaleye. Слуга для настройки конечных точек API и Opaleye для хранения данных в БД. Допустим, есть конечная точка GET /users который возвращает список всех пользователей из Б…
15 июн '18 в 15:46
1
ответ
Использование монады Reader с QuickCheck / monadicIO
Я хотел бы передать целое число в качестве аргумента CLI в программу на Haskell, которая использует QuickCheck / monadicIO, Это целое число будет использоваться внутри assert сделать тесты настраиваемыми. Проблема в том, что когда я разбираю целочис…
30 июл '14 в 20:12
1
ответ
Как создать собственную монаду читателя вместе с пользовательским классом типов?
Я пытаюсь объединить подход, приведенный на http://lexi-lambda.github.io/blog/2016/06/12/four-months-with-haskell/ (раздел под названием "Классы типов могут эмулировать эффекты"), с некоторыми этакий доморощенный читатель монада. Общая проблема, кот…
26 июн '16 в 05:33
2
ответа
Существует ли монада Powerset-over-Reader?
Канонический "экземпляр Монады" для совместного использования среды плюс недетерминизм выглядит следующим образом (с использованием псевдо-Хаскелла, так как Хаскелл Data.Set не, конечно, монадный) eta :: a -> r -> {a} -- '{a}' means the type o…
16 фев '17 в 00:20
1
ответ
Рефакторинг функции Haskell, использующей монаду Reader
У меня есть код, который выглядит примерно так, игнорируя весь код, который не имеет отношения к моему вопросу: import qualified Control.Monad.Reader as Reader data FooEnv = FooEnv { bar :: Int -> Int } type FooReader = Reader.Reader FooEnv foo :…
08 сен '14 в 04:06
1
ответ
Как избежать перехода с Monad Transformers в scala?
У меня есть следующий код, который использует Reader монада для конфигурации, а также имеет дело с IO[Option[String]] и я закончил с кодом, который ступеньки в моем encode функция. Как я могу сформулировать монадный трансформатор для Reader а также …
12 июн '13 в 09:33
2
ответа
Haskell - глубина для каждого узла в двоичном дереве, используя монаду Reader
Я написал следующий код. Это работает и использует Reader монада. Не могли бы вы дать мне несколько советов о стиле кода в Haskell? В основном я имею в виду монады - я новичок. import Control.Monad.Reader data Tree a = Node a (Tree a) (Tree a) | Emp…
07 апр '16 в 11:18
1
ответ
Читательская монада в Scala: возврат, локальный и последовательность
Я использую Reader монада в Scala, предоставленная библиотекой scalaz. Я знаком с этой монадой, как определено в Haskell. Проблема в том, что я не могу найти функции, эквивалентные return, local, а также sequence (среди прочих). В настоящее время я …
22 июл '16 в 10:40
3
ответа
Понимание монады читателя
Я читаю Purescript на примере и попал в часть, представляющую монаду Reader. Пример выглядит так: createUser :: Reader Permissions (Maybe User) createUser = do permissions <- ask if hasPermission "admin" permissions then map Just newUser else pur…
13 окт '17 в 21:20
2
ответа
Функция составная подсказка
Просто ищу объяснение, как работает следующая композиция: (=<<) . return где (=<<) :: (a -> m b) -> m a -> m b return :: a -> m a (.) :: (b -> c) -> (a -> b) -> a -> c Окончательный тип: GHCi> :t (=<<)…
19 авг '12 в 08:29
1
ответ
Модификация внутреннего считывателя в стеке трансформатора
Я собираю код из разных мест и пытаюсь разобраться со следующим: проблема У меня есть стек трансформаторов со следующим упрощенным типом: action :: m (ReaderT r IO) a и я пытаюсь использовать действие в контексте другого стека, который имеет другую …
06 сен '17 в 17:01
2
ответа
В чем разница между читательской монадой и частичной функцией в Clojure?
Леонардо Борхес подготовил фантастическую презентацию " Монады в Clojure". В ней он описывает читательскую монаду в Clojure, используя следующий код: ;; Reader Monad (def reader-m {:return (fn [a] (fn [_] a)) :bind (fn [m k] (fn [r] ((k (m r)) r)))…
08 мар '14 в 02:13
2
ответа
Читатель Monad - объяснение тривиального случая
Я пытался справиться с монадой читателя и наткнулся на этот учебник. В нем автор представляет этот пример: example2 :: String -> String example2 context = runReader (greet "James" >>= end) context where greet :: String -> Reader String S…
26 мар '18 в 16:02
2
ответа
Рекурсивная прогулка по AST с использованием foldl и монады Reader без шаблонов
Я пересекаю AST, используя простое сопоставление с образцом и Reader монада В другом месте в моем проекте я определил walk функция для прохождения AST, которая в своей основе использует foldl сократить результаты посещения каждого узла в дереве до е…
05 апр '16 в 05:27
2
ответа
Scalaz: как работает "scalaz.syntax.applicative._`"
Этот вопрос связан с этим, где я пытался понять, как использовать читалку в Scala. В ответе автор использует следующий код для получения экземпляра ReaderInt[String]: import scalaz.syntax.applicative._ val alwaysHello2: ReaderInt[String] = "hello".p…
27 июл '16 в 19:56
1
ответ
Что означают операции с картой и плоской картой для ReaderMonad
Я новичок в скале. Я родом из Явы. Я читал монады и сформировал общее представление об этом. Хотя я могу оценить map а также flatMap операции над такими типами, как List я не могу обернуть голову вокруг того, что они имеют в виду, когда дело доходит…
28 мар '16 в 06:03