Gepostet: |
List Comprehension | ||||||||||
Hallo, ich habe ein Problem mit einer Uni-Aufgabe bzgl Haskell. Komme mit der Haskell Syntax zum Teil leider noch nicht so richtig klar. Und zwar geht es um list comprehension, dabei konnte ich alle Aufgaben bis auf folgende lösen, welche von der Punktevergabe EIGENTLICH eher einfach sein sollte=) Die unendliche Liste aller natürlichen Quadratzahlen, die durch 5 ohne Rest teilbar sind, aber nur mit Rest durch 20 teilbar sind Meine Idee war einfach folgende: [ x*x| x <- [1..], mod x 5 == 0 && mod x 20 /= 0] Im Endeffekt ist die Ausgabe allerdings nur eine Liste die das mod x 5 == 0 berücksichtigt, der andere Aspekt wird ignoriert. Eine Liste mit den ersten 10 Elementen sieht also bei mir so aus: [25,100,225,625,900,1225,2025,2500,3025,4225] Würde mich sehr freuen, wenn mir jemand erklären könnte, was ich da mal wieder nicht verstanden habe=) |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo Verstehnix wenn ich x*x für die Quadratzahl verwende take 10 [ x*x| x <- [1..], x*x `mod` 5 == 0 && x*x `mod` 20 /= 0] erhalte ich [25,225,625,1225,2025,3025,4225,5625,7225,9025] Viele Grüße Harri |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
hey leute, bin neu hier und hab aufgabe: Definieren Sie eine Haskell-Funktion remDuplicates:: Eq a => [a] -> [a], die Mehrfachvorkommen von Elementen aus Listen entfernt, aber ansonsten die Reihenfolge der Element beibehält. · Variante 1 (remDuplicates): Bei Mehrfachvorkommen soll das letzte Vorkommen in der Ergebnisliste erhalten bleiben. · Variante 2 (remDuplicates'): Bei Mehrfachvorkommen soll das erste Vorkommen in der Ergebnisliste erhalten bleiben. Variante 1 hab ich hinbekommen, aber bei Variante 2 komm ich irgendwie nicht weiter...
kann mir irgendwer vllt. helfen? DANKE!!! |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, wenn es keine Einschränkungen bzgl. der Performance der Funktion gibt, könntest du ein wenig tricksen: Du nimmst dir die Eingabeliste, drehst die Reihenfolge der Elemente um (mit Funktion reverse), wendest die Funktion remDublicates an und drehst das Ergebnis davon wieder um. Müsste eigentlich funktionieren. PS: Nächstes Mal bitte bei einer neuen Aufgabe auch einen neuen Thread anlegen. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||