Gepostet: |
Datentypen Haskell | ||||||||||
Hallo, ich komme nicht klar mit einer Aufgabe, und zwar:a) ich soll einen Datentyp definieren, um Fußballpartien darstellen zu können Datentyp soll solche Attribute haben : Name der Heimmannschaft String, Name der Gastmannschaft String und Ergebnis als Paar von Ganzzahlen ich habe mir folgendes gedacht: data Match = NameHeimatmannschaft String | NameGastmannschaft String | Ergebniss (Integer,Integer) deriving (Show) b) definieren sie eine Funktion unentschieden, die für eine liste von Fußballpartien vom Typ [Match] alle Partien liefert, die unentschieden ausgegangen sind: ich hab geschrieben : unent :: String -> [Match] unent x = [(a,b) | (a,b)<-x, a==b] Aber es funktioniert nicht und ich weiß nicht wo der Fehler ist. Kann mir Bitte jemand helfen? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo KO123, zu a) Eine Partie soll ja immer alle drei Informationen beinhalten. So wie du den Datentyp jetzt definiert hast (mit 3 Konstruktoren), kann ein Wert vom Typ Match nur jeweils eine Information speichern, also entweder einen der Mannschaftsnamen oder das Ergebnis. Du solltest also nur einen Konstruktor erstellen, der drei Informationen speichert, z.B. data Match = Match String String (Int,Int). zu b) Der Typ deiner Funktion ist schonmal falsch. Die Funktion unent soll eine Liste von Spielen als Eingabe bekommen, sortiert dann einige aus und liefert als Ergebnis wieder eine Liste von Spielen. Die Funktionsdefinition ist schon fast richtig. Die Liste x liefert als Elemente aber nicht Paare (a,b), sondern Elemente vom Typ Match. Du müßtest als Musteranpassung also etwas wie (Match heim gast (a,b))<-x verwenden. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Danke dir Siracusa!!! Du bist der beste!!!:-) Mit deinen Tipps habe ich die Aufgabe ganz schnell gelöst. Ich werde mich öffter melden:-) Viele Grüsse KO123 |
|||||||||||
Zum Seitenanfang | |||||||||||