Prolog: Durchlaufen verschachtelter Liste

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Prolog: Durchlaufen verschachtelter Liste

    Hallo

    Ich sitze nun schon seit einiger Zeit an einem Problem.
    Und zwar habe ich eine Liste folgender Form:
    [a,a,a, [b,b,b, [c,c,c, [d,d,d,[...]]], [c,c,c, [d,d,d,[...]]]]] (Punkte stehen für und so weiter)

    Ich möchte diese nun folgendermaßen ausgeben:
    aaa
    bbb
    ccc ccc
    ddd ddd
    .......
    .......

    Das versuche ich mit diesem Code:

    Quellcode

    1. printproof([X,Y,Z]):-write(X),write(Y),write(Z).
    2. printproof([X,Y,Z|[S],[A]]):-write(X),write(Y),write(Z).,nl,printproof(S),printproof(A).
    3. printproof([X,Y,Z|[A]]):-write(X),write(Y),write(Z),nl,printproof(A).

    So lange die liste nur so [..[...[...[.. ist funktioniert das wunderbar, aber sobald eine Verzweigung [..[..][..]] dazukommt geht es nicht mehr. Für die Verzweigung hätte ich eigentlich die 2. zeile im Code, aber das scheint nicht zu funktionieren.

    Kann mir jemand weiterhelfen?
  • Der Code sieht ganz gut aus, ich würde aber immer nur ein Elemente von der Liste abspalten und ausgeben. Wenn du das mit dreien machst trifft evtl die Regel nicht zu wenn nur noch 2 Elemente und eine weitere Liste enthalten sind.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]