Hey Leute wir haben grade im Informatik-Unterricht Haskell und ich verzweifel die ganze Zeit sonst bin ich immer nahc langer Zeit aufs Ergebniss gekommen, aber jetzt hab ich keine Ahnung-.-
Als erstes ein paar Beispiele, welche ich hatte um zu zeigen um was es geht.
inssort: fügt ein Element in eine sortierte Liste ein. Dabei sollen doppelte Elemente erlaubt sein.
-- inssort
inssort n [] = [n]
inssort n (x:xs)
|n > x = [x] ++ (inssort n xs)
|otherwise = [n] ++ [x] ++ xs
del: löscht alle Vorkommen eines bestimmten Elements in einer Liste
-- del
del a [] = []
del a (x:xs)
|a == x = del a xs
|otherwise = [x] ++ (del a xs)
summe: liefert die Summe aller Listenelemente
--summe
summe [] = 0
summe (x:xs) = x + summe xs
So darum geht es! Jetzt zu den Aufgaben an denen ich komplett verzweifelt bin.
Schreiben Sie eine Funktion nehme_n, die die ersten n Elemente einer Liste zurückliefert. Wenn n größer als die Länge der Liste ist, soll die gesmate Liste zurückgeliefert werden.
Ich habe mit folgendes Gedacht, aber leider fehlt da noch was:
--nehme_n
nehme_n a [] = 0
nehme_n a (x:xs)
|a > (x:xs) = [x] ++ xs
Jetzt die 2te Aufgabe die ich noch weniger verstehe-..-
Eine Funktion nehme_solange, liefert alle Elemente einer Liste zurück, bis eine boolsche Bedingung nicht mehr erfüllt ist.
nehme_solange (<10) [1,2,3,12,4] = [1,3,5]
PS: Alle Funktionen müssen Rekursiv sein
Ich hoffe ihr könnte mir helfen, ich würd mich auch über tips freuen.
Danke im vorraus
gh0st