【发布时间】:2011-06-25 17:37:20
【问题描述】:
说,我想定义一个这样的记录属性:
data Attribute = Attribute {name :: String, value :: Any}
这当然不是有效的 haskell 代码。但是有没有一种类型'Any'基本上说任何类型都可以?还是只能使用类型变量?
data Attribute a = Attribute {name :: String, value :: a}
【问题讨论】:
-
如果你想让
name有任何类型,你应该使用类型变量。但是:你确定一个人的name应该有任何类型吗?可能(例如)Int-value 作为name或Bool-value 作为名称不正确!? -
@phynfo,我使用的样本是假设的。我只是将其修改为更通用。
-
如果你真的需要,这种通用性级别可能在 Template Haskell 级别上得到更好的翻译。
标签: haskell