Während ich Haskell lerne, habe ich seine Typklasse bemerkt , die eine großartige Erfindung sein soll, die von Haskell stammt. Auf der Wikipedia-Seite zur Typklasse : Der Programmierer definiert eine Typklasse, indem er eine Reihe von Funktions- oder Konstantennamen zusammen mit ihren jeweiligen Typen angibt, die für jeden Typ vorhanden …
Was ist die Comonad-Typklasse in Haskell? Wie in Comonad von Control.Comonad im Comonad-Paket (Erläuterungen zu anderen Paketen, die eine Comonad-Typklasse bereitstellen, sind ebenfalls willkommen). Ich habe vage von Comonad gehört, aber alles, was ich wirklich darüber weiß, ist, dass es eine extract :: w a -> aArt Parallele zu Monad …
Algebraische Datentypen (ADT) in Haskell kann automatisch Instanzen einiger geworden typeclasse s (wieShow,Eq) durch Ableiten von ihnen. data Maybe a = Nothing | Just a deriving (Eq, Ord) Meine Frage ist, wie funktioniert das deriving, dh woher weiß Haskell, wie die Funktionen der abgeleiteten Typklasse für das abgeleitete ADT implementiert …
Beim Kompilieren meiner Haskell-Anwendung mit der -WallOption beschwert sich GHC über verwaiste Instanzen, zum Beispiel: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result Die Typklasse ToSElemgehört nicht mir, sondern wird von HStringTemplate definiert . Jetzt weiß ich, wie ich das beheben kann (verschieben Sie die Instanzdeklaration in das Modul, in dem …
Gegeben : data Foo = FooString String … class Fooable a where --(is this a good way to name this?) toFoo :: a -> Foo Ich möchte Stringeine Instanz erstellen von Fooable: instance Fooable String where toFoo = FooString GHC beschwert sich dann: Illegal instance declaration for `Fooable String' (All …
Die Standard-Bibliothek Haskell typeclasses MonadPlus, Alternativeund Monoidliefern jeweils zwei Verfahren mit im Wesentlichen gleicher Semantik: Ein leerer Wert: mzero, emptyoder mempty. Eine Bedienungsperson, a -> a -> adie Werte in der typeclass miteinander verbindet: mplus, <|>, oder mappend. Alle drei spezifizieren diese Gesetze, an die sich Instanzen halten sollten: mempty …
Ich spiele mit Anfänger Haskell herum und wollte eine durchschnittliche Funktion schreiben. Es schien das Einfachste auf der Welt zu sein, oder? Falsch. Es scheint, als ob das Typensystem von Haskell es dem Durchschnitt verbietet, an einem generischen numerischen Typ zu arbeiten - ich kann ihn dazu bringen, an einer …
Ich habe Verweise auf Haskell's gefunden Data.Typeable, aber mir ist nicht klar, warum ich es in meinem Code verwenden möchte. Welches Problem löst es und wie?
In seinem Vortrag Simple Made Easy spricht Rick Hickey über " Polymorphism a la carte " (ca. 30:00 im Video). Im gleichen Zusammenhang erwähnt er auch Haskells Typklassen und Clojures Multi-Methoden (und Protokolle). Da ich mit diesen Konzepten nicht sehr vertraut bin, möchte ich ihre Nützlichkeit verstehen, wenn ich versuche, …
Ich habe dies in Scala geschrieben und es wird nicht kompiliert: class TestDoubleDef{ def foo(p:List[String]) = {} def foo(p:List[Int]) = {} } Der Compiler benachrichtigt: [error] double definition: [error] method foo:(List[String])Unit and [error] method foo:(List[Int])Unit at line 120 [error] have same type after erasure: (List)Unit Ich weiß, dass JVM keine …
Mit quantifizierten Einschränkungen kann ich gut ableiten Eq (A f)? Wenn ich jedoch versuche, Ord (A f) abzuleiten, schlägt dies fehl. Ich verstehe nicht, wie quantifizierte Einschränkungen verwendet werden, wenn die Einschränkungsklasse eine Oberklasse hat. Wie leite ich Ord (A f)und andere Klassen ab, die Superklassen haben? > newtype A …
Eine nette wahre Tatsache über die Verkettung ist, dass, wenn ich zwei Variablen in der Gleichung kenne: a ++ b = c Dann kenne ich den dritten. Ich möchte diese Idee in meinem eigenen Concat festhalten, damit ich eine funktionale Abhängigkeit verwende. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, …
Ich habe diesen (zugegebenermaßen seltsamen) Code, der Objektiv und GHC verwendet. Aufzeichnungen : {-# 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 …
Problem Betrachten Sie das folgende Entwurfsproblem in Haskell. Ich habe eine einfache, symbolische EDSL, in der ich Variablen und allgemeine Ausdrücke (multivariate Polynome) wie z x^2 * y + 2*z + 1. Darüber hinaus möchte ich bestimmte symbolische Gleichungen beispielsweise über Ausdrücke x^2 + 1 = 1sowie Definitionen wie ausdrücken …
Ich habe ein Dutzend solcher Newtypes: newtype MyBool = MyBool Bool newtype MyInt = MyInt Int Ich möchte vorhandene Instanzen wiederverwenden: instance MArray IOUArray Int IO where ... instance MArray (STUArray s) Int (ST s) where ... Das Implementieren dieser Instanzen und des gesamten Boilerplate-Codes ist das Letzte, was ich …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.