0
ответов

Почему ContT нельзя сделать экземпляром MonadError?

У меня есть стек преобразователя монад, включающий ErrorT, и я хочу обернуть его преобразователем ContT r. Когда я пытаюсь это сделать, мои вызовы throwError генерируют ошибки типа - по-видимому...
вопрос задан: 23 May 2017 12:20
0
ответов

Вычислительные конструкции (монады, стрелки и т. д.)

Меня заинтересовало, как моделируются вычисления в Haskell. Несколько ресурсов описывают монады как «составные вычисления», а стрелки — как «абстрактные представления вычислений». Я никогда не...
вопрос задан: 23 May 2017 12:19
0
ответов

Монады с Join() вместо Bind()

Монады обычно объясняются чередованием return и bind. Однако я так понимаю, что вы также можете реализовать bind в терминах соединения (и fmap?). В языках программирования, в которых отсутствуют первоклассные функции, bind — это...
вопрос задан: 23 May 2017 12:18
0
ответов

Использование монад, моноидов, функторов и стрелок на практике

Недавно я наткнулся на этот пост о полезных ресурсах по различным аспектам функционального программирования, таким как монады, моноиды и т.д. Но вот вопрос - какую пользу может извлечь обычный программист...
вопрос задан: 23 May 2017 12:16
0
ответов

Как преобразовать GCD-вычисления в стиле CPS для использования монады Continuation

Давайте рассмотрим следующую реализацию монады Continuation для вычислений в стиле CPS, дающих и целочисленных: module Cont: sig type 'a t = (' a -> int) -> int val return: 'a - & ...
вопрос задан: 23 May 2017 12:15
0
ответов

Гарантирует ли Writer Monad правильную ассоциативную конкатенацию?

В Validations in Haskell утверждалось, что использование Writer гарантирует правоассоциативную конкатенацию. Однако этот пример, кажется, показывает обратное. Какой правильный ответ? {- # LANGUAGE ...
вопрос задан: 23 May 2017 12:12
0
ответов

Производительность Repa 3 и правильное использование «сейчас»

Здесь есть базовый вопрос о монаде, не связанный с Repa, а также несколько вопросов, специфичных для Repa. Я работаю над библиотекой, используя Repa3. У меня проблемы с получением эффективного параллельного кода. Если я сделаю...
вопрос задан: 23 May 2017 12:11
0
ответов

Почему упаковка монады Data.Binary.Put создает утечку памяти? (Часть 2)

Как и в предыдущем вопросе, я пытаюсь обернуть монаду Data.Binary.Put в другую монаду, чтобы позже я мог задавать ей такие вопросы, как «сколько байтов он собирается записать» или «что является текущим ...
вопрос задан: 23 May 2017 12:04
0
ответов

Почему мой код, использующий монадические списки из пакета List, такой медленный?

На прошлой неделе пользователь Masse задал вопрос о рекурсивном перечислении файлов в каталоге в Haskell. Первой моей мыслью было попробовать использовать монадические списки из пакета List, чтобы избежать построения всего списка ...
вопрос задан: 23 May 2017 12:04
0
ответов

Помогите мне понять этот код Scala: scalaz IO Monad и implits

Это продолжение этого вопроса. Вот код, который я пытаюсь понять (он взят из http://apocalisp.wordpress.com/2010/10/17/scalaz-tutorial-enumeration-based-io-with-iteratees/): object io {...
вопрос задан: 23 May 2017 11:58
0
ответов

Как на самом деле выполнить монаду StateT вместе с IO?

Я пытаюсь следовать совету, данному в разделе «Сочетание состояния с действиями ввода-вывода» для создания состояния приложения вместе с монадой ввода-вывода. Я получил этот модуль :Main, где import Control.Monad.State...
вопрос задан: 23 May 2017 11:54
0
ответов

Можно ли реализовать liftM2 в Scala?

В Haskell liftM2 можно определить как: liftM2 :: (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> г-н liftM2 f m1 m2 = do x1 <- m1 x2 <- m2 return $ f x1 x2 Я бы хотел ...
вопрос задан: 23 May 2017 11:53
0
ответов

Является ли jQuery монадой

Я где-то читал, что jQuery является монадой, и этот ответ показывает, что функция цепочки в библиотеке underscore.js является не монадой (, а комонадой ). И ответ на этот аналогичный показывает, что это моноид. Итак,...
вопрос задан: 23 May 2017 11:47
0
ответов

Почему изменение монады Data.Binary.Put в преобразователе создает утечку памяти?

Я пытаюсь преобразовать монаду Data.Binary.PutM в преобразователь монад. Итак, я начал с того, что изменил это s определение из newtype PutM a = Put ​​{unPut :: PairS a} в newtype PutM a = Put ​​{unPut :: ...
вопрос задан: 23 May 2017 10:32
0
ответов

Представимый функтор, изоморфный (Bool -> a)

Я подумал, что попробую интригующий Представляемый -functors пакет для определения экземпляра Monad и Comonad для функтора, заданного парой данных a = Pair aa, который может быть представлен с помощью Bool; как упоминалось в ...
вопрос задан: 23 May 2017 10:29
0
ответов

monoid vs monad in Scala

Недавно я пытался найти хороший источник о разнице между монадами и моноидами.Может ли кто-нибудь дать ссылку на хороший ресурс по этому вопросу или, возможно, взять один Пришло время остановиться на...
вопрос задан: 13 April 2017 13:52
0
ответов

Почему разница в кривой производительности между ByteBuffer.allocate () и ByteBuffer.allocateDirect ()

I ' m работает над некоторым кодом SocketChannel-to-SocketChannel, который лучше всего справится с прямым байтовым буфером - долгоживущим и большим (от десятков до сотен мегабайт на соединение). При хешировании точного ...
вопрос задан: 7 April 2017 10:20
0
ответов

Как вынуть стоимость из монады в Haskell?

Есть ли способ взять «вещи» из монады? Я разрабатываю игру, и теперь я пытаюсь понять базы данных. Я нашел счастливо очень приятно, но я не могу получить вещь. Например, я ...
вопрос задан: 5 April 2017 15:36
0
ответов

Стрелка и Монада, две независимые точки зрения для составления вычислений?

Я читал "Классопедию типов" Брента Йорги в Monad.Reader # 13 и обнаружил, что " "иерархия функторов" взаимозависима от "иерархии категорий", как показано на рисунке 1. И согласно ...
вопрос задан: 2 January 2017 23:13
0
ответов

Как работает монада ST?

Я понимаю, что монада ST - это что-то вроде младшего брата IO, который, в свою очередь, является государственной монадой с добавленной магией RealWorld. Я могу изобразить состояния, и я могу представить, что RealWorld каким-то образом ...
вопрос задан: 21 November 2016 04:38
0
ответов

Побочные эффекты в Scala

Я изучаю Scala прямо сейчас. Я немного знаком с Haskell, хотя не могу утверждать, что знаю его хорошо. Замечание в скобках для тех, кто не знаком с чертой Haskell One...
вопрос задан: 20 October 2016 15:51
0
ответов

Преобразование IO Int в Int

Я создал выпадающий список из преобразования xmlWidget в comboBox с помощью функции castTocomboBox, и теперь я хочу получить текст или индекс активного элемента. Проблема в том, что если я использую ...
вопрос задан: 29 August 2016 08:39
0
ответов

Как использовать ( ->) экземпляры Монад и путаница в отношении (->)

По различным вопросам я нашел подсказки в комментариях относительно использования экземпляра (->) Монад, например, для реализации безточечного стиля. Как по мне, это слишком абстрактно. Хорошо, я видел Стрелку ...
вопрос задан: 24 May 2016 08:03
0
ответов

Перестановки списка - Haskell

Я хочу сделать все возможные комбинации подгрупп с 2 списками. Вот функция, которая делает именно это: getCombinations :: [a] -> [[a]] getCombinations na = do a <- na b <- na ...
вопрос задан: 4 February 2016 11:15
0
ответов

Почему в Haskell нет класса типов Cofunctor?

Монады получают fmap из класса типов Functor. Почему comonads не нужен метод cofmap, определенный в классе Cofunctor?
вопрос задан: 12 January 2016 13:41
0
ответов

Можете ли вы определить `Comonads` на основе` Monads`?

Итак, допустим, у вас есть тип newtype Dual f a = Dual {dual :: forall r. f (a - > r) -> r} Как выясняется, когда f является Comonad, Dual f является монадой (забавное упражнение). Это работает по-другому ...
вопрос задан: 16 December 2015 01:39
0
ответов

Haskell: реальная реализация монады ввода-вывода на другом языке?

Как на самом деле реализована монада ввода-вывода? В смысле, какова будет фактическая реализация основной функции? Как мне вызвать функцию haskell (IO) с другого языка, и нужно ли мне в этом случае ...
вопрос задан: 8 December 2015 00:15
0
ответов

Создает ли функция цепочки в underscore.js монаду?

В документации цепочки вы найдете :Вызов цепочки для обернутого объекта приведет к тому, что все будущие вызовы методов также будут возвращать обернутые объекты. Когда вы закончите вычисление, используйте значение для...
вопрос задан: 1 September 2015 13:42
0
ответов

Нет ли стандартного (Either a) экземпляра монады?

У меня создалось впечатление, что где-то был экземпляр для Either a, но я не могу найти Это. Я попытался импортировать Control.Monad, Control.Monad.Instances и Data.Either как показано ...
вопрос задан: 17 August 2015 10:54
0
ответов

Уникальна ли реализация монад в F # с точки зрения количества доступных для нее ключевых слов?

Я знаю только F #. Я не изучал другие языки функционального программирования. Все примеры, которые я видел для монад, описывают только методы bind и unit. В F # много ключевых слов (например, let !, ...
вопрос задан: 27 July 2015 13:42