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

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

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

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

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


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

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

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

1
Почему «трюк с ограничениями» не работает в этом экземпляре HasField, заданном вручную?
У меня есть этот (по общему признанию странный) код, который использует lens и GHC.Records : {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass …

1
Неявное приведение статического типа (приведение) в Haskell
проблема Рассмотрим следующую проблему дизайна в Haskell. У меня есть простой, символический EDSL, в котором я хочу выразить переменные и общие выражения (многомерные полиномы), такие как x^2 * y + 2*z + 1. Кроме того, я хочу выразить некоторые символические уравнения над выражениями, скажем x^2 + 1 = 1, а …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.