List 打印数据类型-Haskell
我正在寻找多种打印List 打印数据类型-Haskell,list,haskell,List,Haskell,我正在寻找多种打印人员列表中每个元素的名字的方法 打印这些元素可以打印为以下形式: x1,x2,x3,…xn [x1,x2,x3,…xn] 多行: data Person = Person { firstName :: String , lastName :: String , age :: Int } deriving (Show) buffy = Person
人员
列表中每个元素的名字的方法
打印这些元素可以打印为以下形式:
x1,x2,x3,…xn
[x1,x2,x3,…xn]
- 多行:
data Person = Person { firstName :: String
, lastName :: String
, age :: Int
} deriving (Show)
buffy = Person "Buffy" "Summers" 22
burt = Person "Burt" "Reynolds" 23
cloud = Person "Cloud" "Strife" 22
rick = Person "Rick" "Sanchez" 21
people = [buffy,burt,cloud,rick]
如果您创建一个类似于Person
的记录类型,您将获得以下字段选择器:
x1
x2
x3
...
xn
因此,您可以将名字映射到列表上,将您的[Person]
转换为[String]
因此,打印firstName
s仅仅是mapM(putStrLn.firstName)people
如果您创建一个类似Person
的记录类型,您将获得以下字段选择器:
x1
x2
x3
...
xn
因此,您可以将名字映射到列表上,将您的[Person]
转换为[String]
那么,打印firstName
s仅仅是mapM(putStrLn.firstName)人
这是否意味着我必须去掉数据结构中的属性,让它读取data Person=Person String String Int?不,我的意思是如果你像你在问题中那样定义Person
,从中(“免费”)可以获得的一个功能是选择器函数firstName
。您不需要(事实上,由于命名冲突,您不能)自己定义firstName
、函数(如果您已经有firstName
)字段。这是否意味着我必须去掉数据结构中的属性,只让它读取data Person=Person String Int?不,我的意思是,如果你像在你的问题中那样定义Person
,你从中得到的(“免费”)是选择器函数firstName
。您不需要(事实上,由于命名冲突,您无法)定义firstName
、函数,如果您已经有firstName
、字段。您说您正在寻找“多种方法”-这些不同的方法应该有什么不同?他们是否应该以不同的方式打印每个元素?一种方法是mapM_uuu打印人员
,另一种方法是sequence_uuu(map打印人员)
,这算不算两种不同的方法?是的,我只是想看看Haskell中打印数据类型的不同方法。你说你在寻找“多种方法”-这些不同的方法应该有什么不同?他们是否应该以不同的方式打印每个元素?一种方法是mapM_uuu打印人员
,另一种方法是sequence_uuu(map打印人员)
,这算不算两种不同的方法?是的,我只是想看看Haskell中打印数据类型的不同方法。