Prolog flatten Liste

flatten([A|B],R):- (islist(A)->(flatten(A,R1),R=R1);(write(A),append([A],R1,R))), flatten(B,R1).
    flatten(X,X).
    islist([_|_]).

Dies ist der code, den ich geschrieben aber ich habe seltsames problem..

Bekomme ich

257 ?- flatten([1,[],2,[3],[3,[3,5]]],R).
1[]23335335
R = [1, [], 2, [3], [3, [3, 5]]] .

Obwohl die zahlen von schreiben sind nicht an das Sie angehängt sind, als Liste:S...

  • Bitte verbessern Sie die Formatierung Ihres Codes. Wie es ist, es ist unmöglich zu Lesen.
  • +1. Nicht sicher, warum jemand hat -1 auf diese Frage. Gibt es Beispielcode und-Ausgang, der anzeigt, dass das unerwünschte Verhalten.
InformationsquelleAutor GorillaApe | 2011-06-17
Schreibe einen Kommentar