
Hi, Using Show it is possible to establish a relationship between an enum type data Color = Red | Blue | Green | Yellow | Orange | Brown | White | Black deriving (Show, Eq, Enum, Bounded) and a String type to display it. *Main> Red Red *Main> [Red,Green,Blue] [Red,Green,Blue] *Main> which is Red :: Color -> "Red" :: [Char] Can one as easily establish a reverse relationship, i.e., convert a String type like "Red" back to its corresponding Color type? So that "Red" :: [Char] -> Red :: Color Michael

Hi Michael, michael rice wrote:
Can one as easily establish a reverse relationship, i.e., convert a String type like "Red" back to its corresponding Color type?
So that
"Red" :: [Char] -> Red :: Color
Yes, simply add Read to your list of to be derived type classes. Then you can say:
read "Red" :: Color
HTH, Martijn.

On Wed, Apr 15, 2009 at 3:13 PM, michael rice
Using Show it is possible to establish a relationship between an enum type and a String type to display it. Can one as easily establish a reverse relationship, i.e., convert a String type like "Red" back to its corresponding Color type?
Make it an instance of the Read type class. http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t%3ARead That will allow you to write - read "Red" :: Color => Red HTH Rahul
participants (3)
-
Martijn van Steenbergen
-
michael rice
-
Rahul Kapoor