Haskell中求和元组的最佳方法

Haskell中求和元组的最佳方法,haskell,tuples,Haskell,Tuples,我是Haskell编程新手,我有一个数据库,存储学生数据和考试分数,如下所示 type Student = String type MarkProject = Float type MarkMidSem = Float type MarkFinal = Float type Database = [(Student, MarkProject, MarkMidSem, MarkFinal)] exampleBase :: Database exampleBase = [("Barry", 23

我是Haskell编程新手,我有一个数据库,存储学生数据和考试分数,如下所示

type Student = String
type MarkProject = Float
type MarkMidSem = Float
type MarkFinal = Float

type Database = [(Student, MarkProject, MarkMidSem, MarkFinal)]

exampleBase :: Database
exampleBase = [("Barry", 23, 24, 43), 
           ("Wayne", 22, 20, 49), 
           ("Ivan", 21, 25, 48),
           ("Alli", 24, 24, 48),
           ("Martial", 22, 25, 49)]
我想创建一个函数来查找学生的考试总分

TotalMarks=MarkProject+MarkMidSem+MarkFinal

我试过几次做他的功能,但都失败了。我还创建了一个函数来插入student、markProject、markmidsem和markfinal等:

totalMark :: Student -> MarkProject -> MarkMidSem -> MarkFinal -> Float

有人能指导我如何完成totalMarks的功能吗?提前感谢。

我会为数据元组创建一个额外的类型,并让数据库使用该类型,之后只需创建一个函数来获取元组,模式匹配并求和所需的值

type Student = String
type MarkProject = Float
type MarkMidSem = Float
type MarkFinal = Float

type StudentData = (Student, MarkProject, MarkMidSem, MarkFinal)
type Database = [StudentData]

exampleBase :: Database
exampleBase = [("Barry", 23, 24, 43), 
           ("Wayne", 22, 20, 49), 
           ("Ivan", 21, 25, 48),
           ("Alli", 24, 24, 48),
           ("Martial", 22, 25, 49)]

totalMark::StudentData -> Float
totalMark (n, mp, mms, mf) = mp + mms + mf

我可以再问你一个问题吗?我需要创建另一个函数来使用totalMark返回的值来查找学生成绩。你能给我一些提示吗?谢谢!@noleavename,studen的分数到底是多少?我是打字错误,是基于分数的科目分数,70~100=A,60~69=B,50~59=C。嗨,我在等待你的回答时完成了这个功能。我使用
gradeStudent::StudentData->String gradeStudent(n,mp,mms,mf)| a>=0&&a<29=“D”| a>=30&&a<49=“E”| a>=50&&a<59=“C”| a>=60&&a<69=“B”| a>=70&&a<100=“a”其中a=totalMark(n,mp,mms,mf)
谢谢你帮我解决这个问题@noleavename,是的,这个函数看起来很完美,很抱歉回答晚了,我是在公车上。。