Haskell中求和元组的最佳方法
我是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
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,是的,这个函数看起来很完美,很抱歉回答晚了,我是在公车上。。