Результаты поиска по запросу "haskell"
Написание cojoin или cobind для n-мерного типа сетки
Используя типичное определение натуралов уровня типа, я определил n-мерную сетку. {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} data Nat = Z | S Nat data U (n :: Nat) x ...
Модульная разработка программ - объединение монадных трансформаторов в функции монадной агностики
Я пытаюсь придумать дизайн модульной программы и еще раз прошу вашей помощи. Как продолжение этих следующих постовМонадные Трансформаторы против ...
У Haskell есть хвостовая рекурсивная оптимизация?
Я обнаружил команду «time» в unix сегодня и подумал, что буду использовать ее для проверки разницы во времени выполнения между хвостовой и обычной рекурсивной функциями в Haskell. Я написал следующие функции: --tail recursive fac :: (Integral ...
Почему в Хаскеле нет трансформатора ввода-вывода?
Любая другая монада поставляется с версией трансформатора, и, насколько я знаю, идея трансформатора является общим расширением монад. Следуя тому, как строятся другие трансформаторы,IOT было бы что-то вроде newtype IOT m a = IOT { runIOT :: m ...
Каков пример Монады, которая является Альтернативой, но не МонадПлюс?
Вего ответ [https://stackoverflow.com/a/10168111/237428]на вопрос«Различие между классами типовMonadPlus, Alternative, а такжеMonoid?» [https://stackoverflow.com/q/10167879/237428]Эдвард Кметт говорит, что Более того, даже еслиApplicative был ...
Confused by the meaning of the 'Alternative' type class and its relationship to other type classes
Я проходил черезTypeclassopedia [http://www.haskell.org/haskellwiki/Typeclassopedia]учить классы типа. Я застрял пониманиеAlternative (а такжеMonadPlus, в этом отношении). Проблемы, которые у меня возникают: «Педия» говорит, что «класс ...
Как добавить поля, которые только кэшируют что-то в ADT?
Часто мне нужно добавить поля в ADT, которые запоминают только некоторую избыточную информацию. Но я не совсем понял, как сделать это красиво и эффективно. Лучший способ показать проблему - это сделать пример. Предположим, мы работаем ...
Как индексировать тип «элемент» по значению «контейнер источника»?
Итак, у меня есть ситуация, очень похожая на этот (очень упрощенный) код: import Data.Maybe import Data.List data Container a = Container [a] -- Assumption: an Element can only obtained from a Container. The operation -- guarentees the Element ...
Haskell: удивительное поведение «groupBy»
Я пытаюсь выяснить поведение библиотечной функции groupBy (из Data.List), которая имеет целью сгруппировать элементы списка с помощью функции «проверки равенства», переданной в качестве первого аргумента. Подпись типа предполагает, что тест на ...
Разница между ленивыми и строгими монадами Хаскелла (или трансформерами)
При просмотре Hackage, большинство монад имеют версию Lazy и Strict. В чем разница? Можете ли вы выделить некоторые примеры для обычных монад (State, Reader, Writer)?