美文网首页Haskell
[Haskell] Record syntax

[Haskell] Record syntax

作者: 何幻 | 来源:发表于2016-03-04 07:14 被阅读24次

Haskell提供了record syntax,可以在定义类型的同时,为每个字段指定读取器。
例如:

data Book = BookID {id :: Int}
         | BookName {englishName :: String, chineseName :: String}
         deriving Show

其中,Book类型指定了两个值构造器,BookIDBookName
<u></u>BookID值构造器有一个字段,它的类型是Int,读取器是函数id
<u></u>BookName值构造器有两个字段,它们的类型都是String,读取器分别是函数englishNamechineseName

我们可以用以下两种方式来创建一个Book类型的值

> BookName "1" "2"
BookName {englishName = "1", chineseName = "2"}

> BookName {chineseName = "2", englishName = "1"}
BookName {englishName = "1", chineseName = "2"}

读取器是一个函数,类型如下:

chineseName :: Book -> String

例子:

> chineseName $ BookName "1" "2"
"2"

相关文章

网友评论

    本文标题:[Haskell] Record syntax

    本文链接:https://www.haomeiwen.com/subject/gdunkttx.html