This program yeilds: Fail: toEnum{Color}: tag (4) is outside of enumeration's range (0,3) in ghc... any ideas why?
-mike On Thu, Nov 21, 2002 at 10:07:12AM -0500, Dean Herington wrote: > "Mike T. Machenry" wrote: > > > Andrew and list, > > > > I am a beginer. I really don't know what I would do if I derived > > Color from Enum. You say I could create elements that way. Is there > > some simple example someone could post to the list? Thank you for > > your help. > > Here's one way to generate random values from an enumerable set: > > import Random > > randomR_Enum :: (Enum a, RandomGen g) => (a, a) -> g -> (a, g) > randomR_Enum (lo, hi) gen = (toEnum val, gen') > where (val, gen') = randomR (fromEnum lo, fromEnum hi) gen > > random_EnumBounded :: (Enum a, Bounded a, RandomGen g) => g -> (a, g) > random_EnumBounded = randomR_Enum (minBound, maxBound) > > data Color = Blue | Red | Green deriving (Show, Enum, Bounded) > instance Random Color where > randomR = randomR_Enum > random = random_EnumBounded > > main = do stdGen <- getStdGen > print (take 10 (randoms stdGen :: [Color])) > > > Dean _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe