haskell - ultima - c# 8
Haskell: Deriving Show para tipo personalizado (2)
La declaración de instancia que hizo es la forma correcta de ir. Parece que se olvidó de eliminar esa cláusula de deriving
defectuosa de la declaración de data
original.
data Operace = Op (Int->Int->Int) String (Int->Int->Int)
instance Show Operace where
show (Op op str inv) = show str
Tengo esta definición de tipo:
data Operace = Op (Int->Int->Int) String (Int->Int->Int) deriving Show
Quiero imprimir este tipo en el shell interactivo (GHCi). Todo lo que debe imprimirse es el campo String
.
Intenté esto:
instance Show Operace where
show (Op op str inv) = show str
Pero sigo recibiendo
No instance for (Show (Int -> Int -> Int))
arising from the ''deriving'' clause of a data type declaration
Possible fix:
add an instance declaration for (Show (Int -> Int -> Int))
or use a standalone ''deriving instance'' declaration,
so you can specify the instance context yourself
When deriving the instance for (Show Operace)
No quiero agregar Show
para (Int->Int->Int)
, todo lo que quiero imprimir es la cadena.
¡Gracias por la ayuda!
EDITAR:
Para futuras referencias, la versión fija es:
data Operace = Op (Int->Int->Int) String (Int->Int->Int)
instance Show Operace where
show (Op op str inv) = str
Puede derivar Show
, solo importar Text.Show.Functions
primero.