从数据类型Haskell返回值

时间:2017-09-02 09:59:03

标签: haskell

假设我创建了以下数据类型,如下所示:

data MolSeq = DNA (String, String) String | Protein (String, String) String 

然后我创建一个类型为DNA的MolSeq数据类型:

dna = DNA ("T2", "ACATAA") "DNA"

我怎么能在以后的程序中返回让我们说值“T2”?

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以对其进行模式匹配,例如:

getMolString :: MolSeq -> String
getMolString (DNA     (s, _) _) = s
getMolString (Protein (s, _) _) = s

这里有live example

数据类型只是数据,您应该使用函数来处理它,您不能将它们视为具有属性或方法的对象。