[Haskell-beginners] Randomly selecting a data constructor

Brent Yorgey byorgey at seas.upenn.edu
Sun Mar 14 10:18:36 EDT 2010


On Sun, Mar 14, 2010 at 12:53:41PM +0000, Evgenij Merenkov wrote:
> 
> Thank you. Didn't know that you can supply type directly to a function, like "f :: Type".

Yes, you can always put a type annotation on any value, it just tells
the compiler what type it should be.  In this case (minBound ::
FigType) is to help out the compiler's type inference, since otherwise
it would not know what type minBound should be (it could be any type
which is an instance of Bounded).

-Brent

> 
> > From: gale at sefer.org
> > Date: Sun, 14 Mar 2010 13:44:39 +0200
> > Subject: Re: [Haskell-beginners] Randomly selecting a data constructor
> > To: tom.davie at gmail.com
> > CC: beginners at haskell.org; evgenij1 at hotmail.com
> > 
> > Sorry, hit "Send" too soon:
> > 
> > >> data FigType = TR1 | TR2 | TR3 | TR4 | SQ | L1 | L2 | Z1 | Z2 | Z3 | Z4 |
> > >> NoFigure
> > >>                deriving (Enum, Bounded)
> > >> randomFigure :: IO FigType
> > >> randomFigure = toEnum <$> randomRIO
> > >>   (fromEnum (minBound :: FigType),
> > >>    fromEnum (maxBound :: FigType))
> > 
> > -Yitz
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org
> > http://www.haskell.org/mailman/listinfo/beginners
>  		 	   		  
> _________________________________________________________________
> Your E-mail and More On-the-Go. Get Windows Live Hotmail Free.
> https://signup.live.com/signup.aspx?id=60969
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners



More information about the Beginners mailing list