是否可以从Haskell中的数据类型的可能值生成列表?

Chr*_*ian 7 haskell types list-comprehension

可以从类型的可能值生成列表吗?例如

data Shape = Circle | Rectangle | Triangle | Pentagon

[Circle,Rectangle,Triangle,Pentagon]

Fed*_*lev 20

是的,它可以.它是Enum有界类型类的义务,例如

? data Shape = Circle | Rectangle | Triangle | Pentagon deriving (Show, Enum, Bounded)
? [minBound .. maxBound] :: [Shape]
[Circle,Rectangle,Triangle,Pentagon]
? [minBound ..] :: [Shape]
[Circle,Rectangle,Triangle,Pentagon]
Run Code Online (Sandbox Code Playgroud)