Ich versuche, einen einfachen genetischen Algorithmus in Haskell zu schreiben. Ich dachte, der erste Schritt sollte sein, eine Typenklasse für Individuen zu machen, die "genetisch" sind, so:
%Vor% Das erscheint mir vernünftig - ich möchte Fitness-Funktionen nicht unbedingt auf einen Typ wie Float
oder Double
beschränken, und konzeptionell sollte eine Fitness-Funktion nur eine Reihenfolge der Individuen liefern.
Wenn ich diese Typklasse jedoch für einen String
-Wrapper implementiere:
Ich sehe den folgenden Fehler in GHC:
%Vor%Soll ich also Klassenfunktionen nicht definieren? Muss ich die Funktion auf einen bestimmten konkreten Typ beschränken oder dem Typklassenkonstruktor eine andere Typvariable zur Verfügung stellen?
Luqui erklärte, was das Problem ist: fitness
müsste in der Lage sein, beliebige Ord
Instanz bereitzustellen, die der Aufrufer anfordern könnte, wenn das, was Sie wirklich wollen, ein bestimmtes ist passt am besten zu .
Dies ist IMO eine sehr nette Anwendung für assoziierte Synonyme:
%Vor%Tags und Links haskell