PROLOG Problem

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • PROLOG Problem

    Sitz grade anner Prolog Aufgabe und verzweifel daran fast und hoffe das mir hier wer weiterhelfen kann.

    Aufgabe:
    Formulieren Sie ein Prolog-Programm, welches die folgenden Operationen über eine Liste L ausführt und daraus eine Ergebnisliste L1 bildet. Entfernen aller Ausdrücke X aus einer Liste L.

    bisherige Lösung:

    prog(X,[H|T],[]) :- X==H,prog(X,T,[]).
    prog(X,[H|T],[]) :- not(X==H),prog(X,T,[H]).
    prog(X,[H|T],[H1]) :- X==H,prog(X,T,[H1]).
    prog(X,[H|T],[H2]) :- not(X==H),prog(X,T,[H2,H]).
    prog(X,[H|T],[H1|T1]) :- X==H,prog(X,T,[H1|T1]).
    prog(X,[H|T],[H2|T2]) :- not(X==H),prog(X,T,append([H2|T2],[H],result)).
    prog(X,[],[H|T]) :- out([H|T]).
    out([H|T]) :- write(H),write(','),out(T).




    Funktioniert auch alles soweit hab nur ein Problem in der Zeile:

    prog(X,[H|T],[H2|T2]) :- not(X==H),prog(X,T,append([H2|T2],[H],result)).

    ich krieg einfach nicht hin das Element HINTEN an die Liste anzuhängen. Habs shcon mit allen möglichen Konstrukten wie ([H2,T2,H]) versucht und was auch immer aber irgendwie bekomm ich dann immer solche Ausdrücke [1,1[[3,]2,] oder ähnliches.
    Ich möchte einfach nur ne Liste haben [H2|T2] wo das Element h hinten angehängt wird das kann doch nicht so kompliziert sein....