www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

leo1983

Gepostet:
11.12.2007 11:31

aus einer Liste l das n-te Element zurückgeben (rekursiv implementieren)  
Hallo,

ich benötige noch einmal Hilfe bei folgendem:

aus einer Liste l das n-te Element zurückgeben (rekursiv implementieren) nicht mit !!

Mein Ansatz:

getNth :: [Int] -> Int -> [Int]
getNth (x:xs) = x:

Ich verstehe nicht, wie ich bei Eingabe einer beliebige Liste ohne den !! Befehl auf das n the Element zugreifen kann. Bei mir scheiterts leider schon an der richtige Deklaration :-(

Wer kann mir helfen?

Zum Seitenanfang    
 
Siracusa

Gepostet:
11.12.2007 19:51

   
Hallo,

deine Funktionsdefinition benötigt noch ein zweites Argument, nämlich den Wert für die Stelle, die gesucht werden soll: getNth (x:xs) n = ...

Das Suchprinzip ist relativ einfach. Ist die Liste leer, kannst du kein Element mehr herausnehmen. Dies stellt einen Fehlerzustand dar, du könntest z.B. mit der Funktion error eine Fehlermeldung ausgeben (macht die !!-Funktion auch so). Wenn die Liste nicht leer ist und n>1, wird die Funktion rekursiv mit der Restliste und mit (n-1) aufgerufen. Wenn n=1, kannst du das erste Element als Ergebnis zurückgeben.


Viele Grüße,

Siracusa
Zum Seitenanfang