Prolog: Erstellen einer Löschfunktion

red_teapea

Redshirt
Mitglied seit
07.01.2006
Beiträge
2
Renomée
0
Hallo,

habe zwei Löschfunktionen zu schreiben und ich weiß nicht, wie ich sie realisieren soll. X soll dabei ein Objekt sein und L bzw. L2 jeweils eine Liste. Vielleicht kann mir von euch jemand ja weiterhelfen.
1. Funktion: loesche(X,L,L2)
L2 soll L sein ohne X. Das Ergebnis soll dann L2 sein. Wenn kein X in L ist, dann soll L2 das L zu Beginn sein.
2. Funktion: loesche2(X,L,L2)
X soll aus ger gesamten Liste L gelöscht werden, also nicht nur das erste X in L, sondern alle X in L. Das Ergebnis soll dann L2 sein. Wenn kein X in L ist,
dann soll L2 wieder L sein.
Hilfe für die zweite Löschfunktion sollen hierfür die Funktionen append(L1,L2,L3) und member(X,L) liefern.
Für eurer Bemühen im Voraus vielen Dank.

Lucinda
 
Ist doch ganz einfach und geht auch ohne member/2 und append/3. ;)
Code:
loesche(_,[],[]).
loesche(X,[X|R],R).
loesche(X,[K|R],[K|R2]) :- X =\= K, loesche(X,R,R2).

loesche2(_,[],[]).
loesche2(X,[X|R],R2) :- loesche2(X,R,R2).
loesche2(X,[K|R],[K|R2]) :- X =\= K, loesche2(X,R,R2).

TiKu
 
Zurück
Oben Unten