2016-04-01 10 views
-1

: Ich bin in Haskell-Programmierung, bekam ich eine Datenbank speichern, die Schülerdaten und die Marke von Prüfung wie unterDer beste Ansatz Tupels Summe in 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)] 

Ich mag eine Funktion erstellen, einen Schüler insgesamt zu finden Noten für die Prüfung.

TotalMarks = MarkProject + MarkMidSem + MarkFinal

i paar Mal versucht hatte, seine Funktion zu tun, aber gescheitert. Ich cerate auch eine Funktion Schüler, markProject, markmidsem einfügen und markfinal mag:

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

mir jemand kann führen, wie die Funktion für totalMarks zu vervollständigen? Danke im Voraus.

Antwort

3

Ich würde einen zusätzlichen Typ für das Datentupel machen und Database diesen Typ verwenden, danach erstellen Sie einfach eine Funktion, die das Tupel nimmt, ein Muster ergibt und summiert, was Sie brauchen.

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 
+0

Vielen Dank, Sie sparen mich! Ich – noleavename

+0

@noleavename, Ihre Begrüßung, glücklich hacken! – Netwave

+0

Darf ich Ihnen eine zusätzliche Frage stellen? Ich muss eine andere Funktion erstellen, um die Wertrückgabe von totalMark zu verwenden, um den Schülergrad zu finden. Kannst du mir einen Hinweis geben? Danken! – noleavename

Verwandte Themen