0
ответов

Можно ли создать монаду, которая считает количество инструкций?

Думая о монаде, мне пришла в голову идея монады как способа порвать с архитектурой фон Неймана. Архитектура фон Неймана использует набор инструкций (называемых программой) для изменения ...
вопрос задан: 9 December 2011 17:29
0
ответов

Существуют ли монады, которые можно использовать как автомат?

Я пишу преобразователь потока из некоторого типа входных данных в тип выходных данных. Ввод осуществляется пользователем, поэтому между событиями есть некоторое время. Поскольку для каждого ввода требуется некоторый ресурс ...
вопрос задан: 8 December 2011 19:02
0
ответов

Кто-нибудь видел список сложных упражнений на Haskell? [закрыто]

Есть ли какие-нибудь списки сложных упражнений на Haskell, в которых монады удивительным образом используются? Меня больше всего интересует простое «выяснить, что делает эта строка кода» или «сделать это без разбора ...
вопрос задан: 7 December 2011 01:54
0
ответов

Функции монад Haskell

Я просматриваю учебник по Haskell, и мне дали этот фрагмент кода для перемещения коня в шахматы: import Control.Monad type KnightPos = (Int, Int) moveKnight :: KnightPos -> [KnightPos] ...
вопрос задан: 6 December 2011 07:13
0
ответов

как я могу реализовать этот преобразователь монад с продолжением?

мотивация. Я пытаюсь создать преобразователь монад со специальной инструкцией f <||> g, которая означает «повторить весь этот блок, содержащий f <||> g, один раз с f, в следующий раз с g». Это ...
вопрос задан: 4 December 2011 22:16
0
ответов

Функция сопоставления Maybes с монадой

Я часто использую выражения вида возможно (return ()) someFunc someMaybe. Поиск функции Monad m => (a -> m ()) -> Может быть, a -> m () на hoogle не дает конкретного результата. Isn '...
вопрос задан: 4 December 2011 11:35
0
ответов

Операционная монада с интерпретатором в произвольной монаде

Я использую операционную монаду Генриха Апфельмуса. Я хотел бы параметризовать интерпретатор монадой для типа результата. Компилируется следующая версия моего кода: {- # LANGUAGE GADTs # -} ...
вопрос задан: 3 December 2011 23:58
0
ответов

Порядок выполнения с (>> =) не такой, как я ожидал

I ' У нас есть серия сетевых запросов, каждый из которых занимает> 10 секунд. Чтобы пользователь знал, что происходит, я даю обновления: main = do putStr "Загрузка первым делом ..." {- Сетевой запрос ...
вопрос задан: 2 December 2011 19:33
0
ответов

Правило ассоциативности монад в haskell

(m >> = f) >> = g = m >> = (\ x -> fx >> = g) чем отличается от f и \ x-> fx ?? Я думаю, они одного типа a -> m b. но кажется, что второй >> = at ...
вопрос задан: 1 December 2011 21:44
0
ответов

Как монада «Может быть» действует как короткое замыкание?

Я пытаюсь получить более глубокое понимание монад. Поэтому я начал немного копаться в «Может быть монаде». Есть одна вещь, в которой я, кажется, не понимаю. Прочтите это: «Итак, Может быть, Связь ...
вопрос задан: 26 November 2011 12:00
0
ответов

как реализовать эту концепцию будущего / состояния как монаду в scala

Я пытаюсь реализовать контейнер для результата матча (например, в спорте), чтобы я мог создавать матчи между победителями других матчей. Эта концепция близка к тому, что представляют собой монады будущего, поскольку ...
вопрос задан: 25 November 2011 21:19
0
ответов

Складывание, функциональная композиция, монады и лень, о боже?

Я озадачен. Я могу написать это: import Control.Monad main = print $ head $ (foldr (.) Id [f, g]) [3] где f = (1 :) g = undefined и результат равен 1. Это имеет смысл, потому что это уменьшает ...
вопрос задан: 23 November 2011 22:29
0
ответов

Как мне идиоматически организовать мои чистые функции с моими монадическими действиями

Я решил, что сегодня день, когда я исправлю некоторые из моих чистых функций, которые без необходимости выполняются в монадическом действии. Вот что у меня есть. flagWorkDays :: [C.Day] -> Обработчик [WorkDay] flagWorkDays ...
вопрос задан: 23 November 2011 00:05
0
ответов

Что такое монада в ФП, в категориальных терминах?

Каждый раз, когда кто-то обещает «объяснить монады», мой интерес возбуждается, но на смену ему приходит разочарование, когда предполагаемое «объяснение» - это длинный список примеров, заканчивающийся каким-то небрежным замечанием ...
вопрос задан: 21 November 2011 16:44
0
ответов

Реализация повторов с помощью MonadPrompt

Вдохновленный приключенческой игрой Брента Йорги, я писал небольшую текстовую приключенческую игру (а-ля Zork), в которой используется {{1} } Библиотека MonadPrompt . Было довольно просто использовать его для разделения ...
вопрос задан: 20 November 2011 20:46
0
ответов

Как выйти из main в haskell, заданном условие

У меня есть основная функция, которая выполняет много операций ввода-вывода. Однако в какой-то момент я хочу проверить переменную, например not (null shouldBeNull), чтобы выйти из всей программы, не продолжая, с кодом выхода linux 1 и ...
вопрос задан: 20 November 2011 18:36
0
ответов

Есть ли у монады ST специальная поддержка компилятора?

Есть ли у монады ST специальная поддержка компилятора в GHC?
вопрос задан: 17 November 2011 15:31
0
ответов

Шаблон Haskell ReaderT Env IO

У меня есть следующий шаблон, который я делаю довольно часто и хотел бы исключить. Выглядит это примерно так: type Configured = ReaderT Config doSomething :: Configured IO Data doSomething = do ...
вопрос задан: 16 November 2011 21:58
0
ответов

Базовая монада Parsec

Многие из комбинаторов Parsec, которые я использую, имеют такой тип, как: foo :: CharParser st Foo CharParser определяется здесь как: type CharParser st = GenParser Char st CharParser, таким образом, является синонимом типа .. .
вопрос задан: 8 November 2011 17:22
0
ответов

Почему это простое использование монады State вызывает переполнение стека?

Я играл с Состояние монады, и я не знаю, что вызывает переполнение стека в этом простом фрагменте кода. import Control.Monad.State.Lazy tick :: State Int Int tick = do n <- ...
вопрос задан: 3 November 2011 16:30
0
ответов

Особый случай ghci для Applicative?

В ghci: λ>: t (чистый 1) (чистый 1) :: (Аппликативный f, Num a) => fa λ> show (чистый 1) <интерактивный>: 1: 1: Нет экземпляра для ( Show (f0 a0)), возникающее в результате использования `show '...
вопрос задан: 31 October 2011 02:30
0
ответов

Каковы преимущества аппликативного синтаксического анализа над монадическим?

Похоже, существует консенсус, что вы должны использовать Parsec как аппликатив, а не как монаду . Каковы преимущества аппликативного анализа над монадическим? стиль производительность абстракция ...
вопрос задан: 22 October 2011 19:01
0
ответов

Всегда ли Хаскелл знает, какой «возврат» будет звонить?

Я определяю экземпляр монады следующим образом: data Something = Something, экземпляр Monad Something, где return a = Something a - Оборачивает a в 'Something', верно? m >> = f = ...
вопрос задан: 20 October 2011 08:47
0
ответов

Монады в C # - почему реализации Bind требуют, чтобы переданная функция возвращала монаду?

Большинство примеров монад, которые я видел в C #, написаны примерно так: public static Identity Bind (this Identity a, Func > func) {return func (...
вопрос задан: 19 October 2011 22:13
0
ответов

Шаблон, позволяющий избежать вложенных блоков try catch?

Рассмотрим ситуацию, когда у меня есть три (или более) способа выполнения вычислений, каждый из которых может завершиться ошибкой с исключением. Чтобы попытаться выполнить каждое вычисление, пока мы не найдем тот, который будет успешным, я ...
вопрос задан: 18 October 2011 19:59
0
ответов

Как создать стек монад базы данных в Happstack ?

Я хочу создать приложение Happstack с большим доступом к базе данных. Я думаю, что стек монад с вводом-выводом внизу и монадой типа записи базы данных наверху (с записью журнала в середине) будет ...
вопрос задан: 18 October 2011 11:33
0
ответов

Haskell и ленивая оценка монад

Играя с монадами, я часто сталкиваюсь с проблемами оценки. Сейчас я понимаю основные концепции ленивой оценки, но не понимаю, как монады лениво оцениваются в Haskell. Рассмотрим ...
вопрос задан: 17 October 2011 12:49
0
ответов

Автоматическое преобразование инфиксных операторов в монадические инфиксные операторы

Одна из приятных особенностей Haskell - это возможность использовать инфиксную нотацию. 3: [] :: Num a => [a] 2 + 4 * 3 + 5 :: Num a => a Но эта сила внезапно и, к сожалению, теряется, когда ...
вопрос задан: 12 October 2011 15:34
0
ответов

Как мне обрабатывать бесконечный список объектов ввода-вывода в Haskell?

Я пишу программу, которая читает из списка файлов. Каждый файл либо содержит ссылку на следующий файл, либо отмечает, что это конец цепочки. Поскольку я был новичком в Haskell, мне показалось, что ...
вопрос задан: 11 October 2011 12:57
0
ответов

Writer против WriterT в Haskell

В чем разница между Writer и WriterT в Haskell? Один предпочтительнее другого?
вопрос задан: 3 October 2011 01:23