我想创建一个类型来存储一些通用信息,至于我,这种类型是 Molecule,我存储化学图和分子特性。
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)
当我创建一个分子时,我必须直接指定一种类型。