【发布时间】:2013-07-24 15:23:55
【问题描述】:
我想创建一个类型来存储一些通用信息,对于我来说,这个类型是 分子,我存储化学图和分子特性的地方。
data Molecule = Molecule {
name :: Maybe String,
graph :: Gr Atom Bond,
property :: Maybe [Property] -- that's a question
} deriving(Show)
我想用元组表示的属性
type Property a = (String,a)
因为属性可以有任何类型:Float、Int、String 等。
问题是如何形成 Molecule 数据结构,所以我将能够在 Molecule 中收集任意数量的任意类型的属性。如果我这样做了
data Molecule a = Molecule {
name :: Maybe String,
graph :: Gr Atom Bond,
property :: Maybe [Property a]
} deriving(Show)
我必须在创建分子时直接指定一种类型。
【问题讨论】:
-
这里的问题(总是)是这样的:你想对一个属性做什么?假设您可以在其中放置任何类型。现在你有一个任何东西的清单。您通常如何处理此类列表?
标签: haskell