Pytania otagowane jako typeclass

Klasy typów w Haskell są mechanizmem językowym obsługującym polimorfizm ad hoc. Istnieją również w Scali, Coq i Isabelle.


2
Jaka jest typeklasa Comonad w Haskell?
Jaka jest typeklasa Comonad w Haskell? Tak jak w Comonad z Control.Comonad w pakiecie comonad (mile widziane są również wyjaśnienia wszystkich innych pakietów, które zapewniają typeklasę Comonad). Niewyraźnie słyszałem o Comonad, ale tak naprawdę wiem tylko o tym, że jest to extract :: w a -> acoś w rodzaju paraleli …

3
Jak działa wyprowadzanie w Haskell?
Algebraiczne typy danych (ADTS) w Haskell może automatycznie stają się przypadki niektóre typeclasse s (jakShow,Eq) poprzez wynikające z nich. data Maybe a = Nothing | Just a deriving (Eq, Ord) Moje pytanie brzmi: jak to derivingdziała, tj. Skąd Haskell wie, jak zaimplementować funkcje wyprowadzonej typeklasy dla wyprowadzającego ADT? Ponadto, dlaczego …

6
Osierocone instancje w Haskell
Podczas kompilowania mojej aplikacji Haskell z -Wallopcją GHC narzeka na osierocone instancje, na przykład: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result Klasa typu ToSElemnie jest moja, jest zdefiniowana przez HStringTemplate . Teraz wiem, jak to naprawić (przenieść deklarację instancji do modułu, w którym zadeklarowano Wynik) i wiem, dlaczego GHC wolałby …
86 haskell  ghc  typeclass 


1
Rozróżnienie między typeklasami MonadPlus, Alternative i Monoid?
Średnia Biblioteka Haskell typeclasses MonadPlus, Alternativei Monoidkażdy zapewniają dwie metody z zasadniczo tą samą składnię: Pusta wartość: mzero, empty, lub mempty. Operator a -> a -> a, który łączy wartości w typeclass razem: mplus, <|>, lub mappend. Wszystkie trzy określają te prawa, których powinny przestrzegać instancje: mempty `mappend` x = …


1
Tworzenie całkowicie zależnej konkatenacji
Dobrym prawdziwym faktem na temat konkatenacji jest to, że jeśli znam dowolne dwie zmienne w równaniu: a ++ b = c Więc znam trzeci. Chciałbym uchwycić ten pomysł w swoim własnym konkat, więc używam zależności funkcjonalnej. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, PolyKinds, TypeOperators, UndecidableInstances #-} import Data.Kind …

1
Dlaczego „sztuczka z ograniczeniami” nie działa w tym ręcznie zdefiniowanym wystąpieniu HasField?
Mam ten (co prawda dziwny) kod, który używa obiektywu i GHC . {-# 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 -- just a …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.