Prolog: Filtern einer Liste?

Ich arbeite derzeit an einem sehr kurzen Projekt für Prolog und habe gerade versucht, einen von mir erstellten "Filter" auf eine Liste anzuwenden. Ich habe den Filter sozusagen fertig, kann ihn aber nicht anwenden. Es wäre besser, wenn ich illustriere:

filter(A, B) 

... gibt 'true' aus, wenn bestimmte Bedingungen erfüllt sind.

filterList(A, [X, Y, Z])

... gibt eine Liste aus, die alle Elemente aus dem zweiten Argument enthält, die den Filter ausgeben.falsc. (Wenn also Filter (A, X) wahr ist, ist die Ausgabe [Y, Z].)

Ich habe die "Filter" -Funktion bereit, aber jetzt muss ich sie auf eine Liste anwenden, wie im zweiten Beispiel gezeigt, mit Ausnahme aller Elemente, für die der Filter true zurückgibt, wenn er mit dem ersten Argument angewendet wird.

Wenn der Filter ein einfaches A == B ist, soll die Funktion A [A, B, A, C, D, A] empfangen und [B, C, D] ausgeben, nachdem alle Elemente für entfernt wurden was der filter natürlich betrifft.

Ich habe Probleme mit der Grundstruktur der Funktion. Wenn also jemand einen Grundriss für eine Funktion wie diese bereitstellen könnte, wäre dies eine große Hilfe. Ich habe meine Situation so weit wie möglich vereinfacht, damit ich alles, was Sie bereitstellen können, verwenden und an meine Bedürfnisse anpassen kann.

Danke im Voraus

Antworten auf die Frage(12)

Ihre Antwort auf die Frage