【发布时间】:2018-04-09 21:47:22
【问题描述】:
目前我有这些数据类型:
data NumberColumn = NumberColumn String [Double]
data StringColumn = StringColumn String [String]
data UnknownColumn = UnknownColumn String [String]
所有这些数据类型(还有其他数据类型,这些只是域示例)模型 csv 文件列。它们可以表示纯数字、姓名、金钱、简单的文本等。
我想要实现的是这样的:
data Column = NumberColumn String [Double] | StringColumn String [String] | UnknownColumn String [String]
也就是说,我想将它们放在一个单一的数据类型中,以便可以映射、过滤和创建新项目,如下所示:
sumColumn :: NumberColumn -> NumberColumn -> NumberColumn
sumColumn...
问题是 NumberColumn 不是数据类型而是构造函数,所以我能想到的最好的就是接受和返回 Column 类型:
sumColumn :: Column -> Column -> Column
sumColumn (NumberColumn...) (NumberColumn...)...
这可行,但函数应该只使用 NumberColumns 的明确性丢失了,我非常想保留它。
这可以实现吗?
【问题讨论】:
标签: haskell