[Haskell-beginners] Generate a list of all constructors

amindfv at gmail.com amindfv at gmail.com
Sat Nov 14 23:32:56 UTC 2015


The problem there is if you add a new color before "RED". I'd do:

data Color = RED | BLUE | YELLOW
   deriving (Show, Enum, Bounded)

allColors :: [Color]
allColors = [minBound..maxBound]

tom


> El 14 nov 2015, a las 14:12, Francesco Ariis <fa-ml at ariis.it> escribió:
> 
>> On Sat, Nov 14, 2015 at 07:56:45PM +0100, Kees Bleijenberg wrote:
>> In this piece of code
>> 
>> 
>> 
>> data Color = RED | BLUE | YELLOW
>> 
>> 
>> 
>> allColors :: [Color]
>> 
>> allColors = [RED, BLUE, YELLOW]
>> 
>> 
>> 
>> I have to remeber that if I add a Color, I have to add the color in
>> allColors too.  
>> 
>> Is there no better way to  add all possible colors in allColors?
> 
> Yes, if you make Color instance of Enum. E.g.:
> 
>    data Color = RED | BLUE | YELLOW deriving (Show, Enum)
>    allColors = enumFrom RED
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


More information about the Beginners mailing list