[Haskell-cafe] Creating an instance of the Show Typeclass for a datatype
Tom Ellis
tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk
Thu Dec 3 22:23:10 UTC 2015
On Thu, Dec 03, 2015 at 10:16:07PM +0000, Murilo Winter wrote:
> As part of my exercise, I have to create an instance of the show typeclass
> for a given data type defined as:
>
> 1. *type *stat *= (*String*, Int)*
That's not a new datatype, that's a type synonym.
> *If* it was a data type, like:
>
> 1. data TrafficLight = Red | Yellow | Green
>
>
> It would be as simple as doing:
>
> 1. instance Show TrafficLight where
> 2. show Red = "Red light"
> 3. show Yellow = "Yellow light"
> 4. show Green = "Green light"
>
>
> However, I do not know how to declare the instance for a type, and then how
> to access its elements (String and Int).
>
> This is what I have so far, which does not work:
>
> 1. instance Show Stat where
> 2. show stat(a,b) = a
>
> instance Show Stat where
> show stat(a b) = b
You probably want something like
data Stat = Stat String Int
instance Show Stat where
show (Stat s _) = s
By why not just use
data Stat = Stat String Int deriving Show
instead?
Tom
More information about the Haskell-Cafe
mailing list