www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

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

Logo - DracheHaskell-Forum

arnold74

Gepostet:
03.06.2010 14:15

Gruppieren von Elementen  
Hallo bin ein Stückchen weiter, leider fehlt mir eine Funktion zum Gruppieren. Ich erhalte zb: laut meinem Programm (möchte nicht alles neu machen, bitte nicht!!!!!!!) folgende Ausgabe:
(5,1,"Z",[E],E)
(5,1,"E",[E,+,T],E)
(4,1,"E",[T],T)
(4,1,"T",[T,*,F],T)
(3,1,"T",[F],F)
(2,1,"F",[(,E,)],()
(1,1,"F",,i)
soweit so gut. In einer späteren Rekursion erhalte ich zb nochmals (5,1,"E",[E,+,T],E) diesen Wert und meine Version filtert diesen Wert heraus. Ich habe gesehen, dass ich dies falsch gemacht habe. Es sollen nur dann die Werte gefiltert werden wenn genau die gleiche Gruppe (5,1,"Z",[E],E) (5,1,"E",[E,+,T],E) schon vorhanden sind. Es heißt ich müsste meine Ausgabe irgendwie gruppieren und vergleichen können. Das heißt die 5,1-Elemente, in diesem Fall eben diese beiden und dann bei einer späteren Ausgabe kontrollieren ob diese schon vorhanden sind, aber eben genau diese Gruppe und nicht nur eines von beiden. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Danke Siracusa

lg
arnold
Zum Seitenanfang    
 
Siracusa

Gepostet:
03.06.2010 19:37

   
Hallo,

mir ist nicht klar geworden nach welchen Kriterien du filtern willst, aber es gibt z.B. die Funktion Data.List.nubBy, der du ein selbst definiertes Prädikat übergeben kannst, nach dem die doppelten Werte gefiltert werden sollen. Ansonsten kannst du dir auch mit filter erstmal die Elemente einer Gruppe bestimmen und dann innerhalb der Gruppe selbst vergleichen.


Viele Grüße,

Siracusa
Zum Seitenanfang    
 
arnold74

Gepostet:
03.06.2010 22:56

   
Hallo,
vielen Dank für Deine Antwort. Ich würde gerne alle welche zu Gruppe 5 gehören zusammenführen usw., das heißt ich muss irgendwie diese beiden Element zu einer Gruppe zusammenführen um danach festzustellen ob vielleiche zu einem späteren Zeitpunkt nochmals die gleichen Items, das heißt dass der Parser an der 1.Stelle is: (5,1) bedeutet eben dass diese Items zur Gruppe 5 gehören und 1 bedeutet dass der Parser sich auf Pos1 befindet. Später beim nächsten Gotoset soll dann überprüft werden, ob es schon einen solchen Eintrag gibt, aber eben beide in genau dieser Form

danke
arnold
Zum Seitenanfang