Haskell Funktion in Funktion |
24.07.2018, 20:36 | Auf diesen Beitrag antworten » |
Bronia030 | Haskell Funktion in Funktion Meine Frage: Hallo liebe Informatik Freunde... Ich beschäftige mich grade mit folgender Aufgabe Gegeben sei die Typdefinition type Datum = (Int, Int, Int) wobei die drei Einträge das Jahr, der Monat und der Tag sind. Das Abgabedatum wird also wie folgt dargestellt: (2018, 7, 26). Es soll die Funktion tagesDifferenz d1 d2 implementiert werden, welche zwei Daten übergeben bekommt und die Differenz zwischen ihnen in Tagen zurückgeben soll. Implementieren Sie dafür zunächst die Funktion datumZuTagen d welche aus einem übergebenem Datum die Anzahl an Tagen seit dem 1. Januar im Jahre 1 bestimmt. Gehen Sie zur Vereinfachung davon aus, dass jedes Jahr 365 Tage hat und definieren Sie sich, wenn nötig, geeignete Hilfsfunktionen. Verwenden Sie folgende Kontrollwerte um zu prüfen, ob ihre Implementierung korrekt ist: datumZuTagen (1, 1, 1) == 1 datumZuTagen (2018, 7, 26) == 736412 Die DatumZuTag Funktion funktioniert bereits ganz gut und alles läuft, jetzt weiß ich nicht wirklich aber, wie ich diese Funktion in die andere mit einbide... Meine Ideen: ype Date = (Int, Int, Int) tagesdifferenz :: Date -> Int tagesdifferenz (year, month, day) (year2, month2, day2) = datetoday(year, month, day) - datetoday(year2, month2, day2) datetoday :: Date -> Int datetoday (year, month , day) = day + monthtoday month + yeartoday year yeartoday :: Int -> Int yeartoday year = ((year-1)*365) --12 Guards benutzen...? monthtoday :: Int -> Int monthtoday month |month == 1 = 0 |month == 2 = 31 |month == 3 = 59 |month == 4 = 90 |month == 5 = 120 |month == 6 = 151 |month == 7 = 181 |month == 8 = 211 |month == 9 = 243 |month == 10 = 273 |month == 11 = 304 |month == 12 = 334 |
|
|