www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

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

Logo - DracheHaskell-Forum

evangelion2100

Gepostet:
10.12.2005 16:19

Faltungsfunktionen  
Ja, ich bin es wieder, mit einem weiteren Problem.
Diesmal geht es um Faltungsfunktionen. Ich soll folgendes bewerkstelligen:

tNr [("müller", 4563567),("meier",6736839),("müller", 7876783)] "müller" = [4563567,7876783]

Naja, ohne Faltungsfunktion kann ich es ja, aber da die Aufgabenstellung eine Faltungsfunktion verlangt, habe ich meine Probleme.

Ohne Fatungsfunktion könnte man es so lösen:

>tNr [] _ = []
>tNr (x:xs) name
> | (fst x == name) = snd x : tNr xs name
> | otherwise = tNr xs name


Ich hoffe Jacke kann mir wieder einen guten Rat geben, der letzte war gut, aber ich hatte das Problem zuvor etwas anders gelöst, aber trotzdem danke.

Edit: habe es gelöst :)


MfG

evangelion2100
Zum Seitenanfang    
 
Jacke

Gepostet:
10.12.2005 19:19

   
also eine Faltungsfunktion funktioniert so:
foldr f z [] = z
foldr f z (x:xs) = f x (foldr f z xs)

usage:

Prelude> foldr (++) [] ["con", "cat", "en", "ate"]
"concatenate"


also für dein Problem hab ichs nur etwas abgewandelt
tnr [] name =[]     
tnr (x:xs) name |(fst x==name) =foldr (++) [] [[snd x],(tnr xs name)]
|otherwise = tnr xs name
Zum Seitenanfang