Результаты поиска по запросу "haskell"

3 ответа

Написание cojoin или cobind для n-мерного типа сетки

Используя типичное определение натуралов уровня типа, я определил n-мерную сетку. {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE TypeFamilies #-} data Nat = Z | S Nat data U (n :: Nat) x ...

2 ответа

Модульная разработка программ - объединение монадных трансформаторов в функции монадной агностики

Я пытаюсь придумать дизайн модульной программы и еще раз прошу вашей помощи. Как продолжение этих следующих постовМонадные Трансформаторы против ...

4 ответа

У Haskell есть хвостовая рекурсивная оптимизация?

Я обнаружил команду «time» в unix сегодня и подумал, что буду использовать ее для проверки разницы во времени выполнения между хвостовой и обычной рекурсивной функциями в Haskell. Я написал следующие функции: --tail recursive fac :: (Integral ...

ТОП публикаций

1 ответ

Почему в Хаскеле нет трансформатора ввода-вывода?

Любая другая монада поставляется с версией трансформатора, и, насколько я знаю, идея трансформатора является общим расширением монад. Следуя тому, как строятся другие трансформаторы,IOT было бы что-то вроде newtype IOT m a = IOT { runIOT :: m ...

1 ответ

Каков пример Монады, которая является Альтернативой, но не МонадПлюс?

Вего ответ [https://stackoverflow.com/a/10168111/237428]на вопрос«Различие между классами типовMonadPlus, Alternative, а такжеMonoid?» [https://stackoverflow.com/q/10167879/237428]Эдвард Кметт говорит, что Более того, даже еслиApplicative был ...

5 ответов

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, в этом отношении). Проблемы, которые у меня возникают: «Педия» говорит, что «класс ...

1 ответ

Как добавить поля, которые только кэшируют что-то в ADT?

Часто мне нужно добавить поля в ADT, которые запоминают только некоторую избыточную информацию. Но я не совсем понял, как сделать это красиво и эффективно. Лучший способ показать проблему - это сделать пример. Предположим, мы работаем ...

2 ответа

Как индексировать тип «элемент» по значению «контейнер источника»?

Итак, у меня есть ситуация, очень похожая на этот (очень упрощенный) код: 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 ...

4 ответа

Haskell: удивительное поведение «groupBy»

Я пытаюсь выяснить поведение библиотечной функции groupBy (из Data.List), которая имеет целью сгруппировать элементы списка с помощью функции «проверки равенства», переданной в качестве первого аргумента. Подпись типа предполагает, что тест на ...

1 ответ

Разница между ленивыми и строгими монадами Хаскелла (или трансформерами)

При просмотре Hackage, большинство монад имеют версию Lazy и Strict. В чем разница? Можете ли вы выделить некоторые примеры для обычных монад (State, Reader, Writer)?