问题:
我想从 Haskell 中的类型生成 HTML 表单。
Color = Green | Yellow | Red
Fruit = Apple Color Int
| Banana Color Int String
用户应选择一个下拉列表,其中包含(“Apple”,“Banana”)或(“Green”,“Yellow”,“Red”)选项
问题:
但是如何将
ALL
/Fruit
类型的 Color
值获取到 HTML 呢?像这样的东西:
[ toHtml v <- Fruit.values() ]
-- render "Apple" to html
-- render "Banana" to html
Data
类在这里有帮助,例如
data Color = Green | Yellow | Red deriving Data
colorStrings :: [String]
colorStrings = map show $ dataTypeConstrs (dataTypeOf Green :: DataType)
要让
Fruit
工作(也有字段),您必须更加努力,但所需的信息应该在 DataType
数据类型中可用。