Вопросы с тегом «typeclass»

112
Интерфейс Java и класс типов Haskell: различия и сходства?

Пока я изучаю Haskell, я обратил внимание на его типовой класс , который, как предполагается, был великим изобретением, появившимся на Haskell. Однако на странице Википедии о классе типов : Программист определяет класс типа, указывая набор имен функций или констант вместе с их соответствующими...

105
Что такое класс типов Comonad в Haskell?

Что такое класс типов Comonad в Haskell? Как и в Comonad от Control.Comonad в пакете comonad (также приветствуются объяснения любых других пакетов, которые предоставляют класс типов Comonad). Я смутно слышал о Comonad, но все, что я действительно знаю о нем, - это то, что это обеспечивает extract...

104
Как деривация работает в Haskell?

Алгебраические типы данных (ADT) в Haskell могут автоматически становиться экземплярами некоторых классов типов (напримерShow,Eq), производя их от них. data Maybe a = Nothing | Just a deriving (Eq, Ord) У меня вопрос: как это derivingработает, т.е. как Haskell знает, как реализовать функции...

86
Осиротевшие экземпляры в Haskell

При компиляции моего приложения Haskell с -Wallопцией GHC жалуется на потерянные экземпляры, например: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result Класс типа ToSElemне мой, он определен HStringTemplate . Теперь я знаю, как это исправить (переместить объявление экземпляра в...

85
Различие между классами типов MonadPlus, Alternative и Monoid?

Классы типов Haskell стандартной библиотеки MonadPlus, Alternativeи Monoidкаждый предоставляют два метода с практически одинаковой семантикой: Пустое значение: mzero, emptyили mempty. Оператор , a -> a -> aкоторый соединяет значения в классе типов вместе: mplus, <|>или mappend. Все три...

10
Создание полностью зависимой конкатенации

Хороший факт о конкатенации заключается в том, что если я знаю какие-либо две переменные в уравнении: a ++ b = c Тогда я знаю третий. Я хотел бы запечатлеть эту идею в моем собственном конкатате, поэтому я использую функциональную зависимость. {-# Language DataKinds, GADTs, FlexibleContexts,...

10
Получите Ord с количественными ограничениями (для a. Ord a => Ord (fa))

С количественными ограничениями я могу получить Eq (A f)просто отлично? Однако, когда я пытаюсь вывести Ord (A f), это терпит неудачу. Я не понимаю, как использовать количественные ограничения, когда класс ограничений имеет суперкласс. Как я могу получить Ord (A f)и другие классы, которые имеют...

9
Неявное приведение статического типа (приведение) в Haskell

проблема Рассмотрим следующую проблему дизайна в Haskell. У меня есть простой, символический EDSL, в котором я хочу выразить переменные и общие выражения (многомерные полиномы), такие как x^2 * y + 2*z + 1. Кроме того, я хочу выразить некоторые символические уравнения над выражениями, скажем x^2 +...

9
Почему «трюк с ограничениями» не работает в этом экземпляре HasField, заданном вручную?

У меня есть этот (по общему признанию странный) код, который использует lens и GHC.Records : {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE...