Ich habe einen Vorschlag von jemandes Kommentar in einem anderen Beitrag versucht, wie man einen Baum in eine Liste ändert. Allerdings habe ich irgendwo eine undeclared Variablen (oder etwas), so sind meine Werte in meiner Liste [_G667, _G673, _G679] statt [5, 2, 6], was die richtige Antwort ist. Alle Manipulationen sind meines Wissens richtig. HierBaum zum Auflisten (aktualisiert)
ist der Code:
flatten(Item , []).
flatten(tree(Left, Val, Right), List) :-
flatten(Left, List1),
append(List1, [E], List2),
flatten(Right, List3),
append(List2, List3, List).
Die Abfrage, die ich verwendet wurde:
?- flatten(tree(tree(nil, 2, nil), 5, tree(nil, 6, nil)), L).
Hat jemand die Variable Problem sehen? Ich dachte, es könnte in der ersten Zeile (mit Item) sein, aber wenn ich Item zu Item ändere, gibt die Abfrage sofort false zurück.
Ich habe nur ein paar Prolog-Programme geschrieben, also ist das für mich immer noch ein neues Konzept.
diese antwortet nicht, was der OP gefragt hat. –