Soy relativamente nuevo en Haskell. Escribo un clon del juego de cartas uno y quiero una bonita salida en color de una carta. HagoHaskell derivando instancias adicionales para los tipos de datos importados
import System.Console.ANSI
cuales proporciona
data Color = Black
| Red
| Green
| Yellow
| Blue
| Magenta
| Cyan
| White
deriving (Bounded, Enum, Show)
ahora quiero añadir que deriva (Ord, Ec) así, podría escribir esto en el archivo de origen del paquete importado, pero debe haber una forma más fácil de hacer esto. No tengo ni idea de qué palabras clave buscar o buscar en un libro de google.
Para la clase de tipos leer he añadido las siguientes líneas instancia de 'Leer color where¬ readsPrec _ str = [ (color (c), t) | ¬ (c, t) ← lee str] ¬ donde color x = caso x de "Negro" → Negro¬ "Rojo" → Rojo¬ "Verde" → Verde¬ "Amarillo" → Amarillo 0 "Azul" → Azul¬ ... ' – epsilonhalbe
Usando' import Data.Function (on) ':' instancia Eq Color donde (==) = (==) \ 'on \' fromEnum', 'instancia Ord Color donde compare = compare \ 'on \' fromEnum'. – rampion
¿No puede él usar derivación independiente derivar Ord y Eq automágicamente? http://www.haskell.org/haskellwiki/GHC/Stand-alone_deriving_declarations –