Prolog: Problem mit Listen

pazuzu

Newbie
Registriert
Nov. 2010
Beiträge
1
Hallo,

als Vorwarnung: bin noch noch ziemlicher Anfänger in Prolog -- wahrscheinlich ist die Lösung zu meinem Problem ziemlich trivial und mit wenigen Zeilen zu machen.... aber ich habe da gerade irgendwie ein ziemliches Brett vor dem Kopf.

Problem: ich habe eine "verschachtelte" Liste von Listen (dh die "inneren" Listen enthalten wiederum Listen als Elemente), also Bsp:

Code:
Liste1= [ [[1,2],[3]], [[4,5,6],[7,8]] ]

und möchte quasi die "inneren" Listen auflösen, so dass eine "einfache" Liste von Listen bleibt, sprich:

Code:
Liste2= [ [1,2], [3], [4,5,6], [7,8] ]

Frage: wie kann ich das am besten lösen?


Randnotiz:
"flatten" kenne ich bereits, löst aber nicht exakt mein Problem.

flatten(Liste1,L) liefert
L=[1,2,3,4,5,6,7,8]

ich möchte aber nur die äusseren Klammern um die inneren Sublisten auflösen, deren innere Listen aber erhalten (!), also: [[[1,2],[3]] ....] -> [[1,2],[3] ....]

konnte noch kein passende Funktion finden, muss es also vermutlich selbst schreiben.


Danke,
Paz
 
mein prolog ist schon ein wenig her, und ich bin grad nur per handy on, aber:
eine liste ist einfach verschachtelt, wenn der kopf eine nicht verschachtelte liste ist und der rest eine leere oder einfach verschachtelte liste ist.

wende flatten also auf die elemente an und nicht auf die liste selber.
 
Zuletzt bearbeitet:
Mein Prolog liegt auch einige Jahre zurück aber wie der Vorposter schon sagte, Flatten auf die Listen-Elemente anwenden:

bla([X|XS]) :- [flatten(X)|bla(XS)]. Also vom Prinzip, Syntax stimmt natürlich nicht :(
 
Zurück
Oben