Einf. in das symbolische Programmieren CIS, SS 2002, H.Leiss ================================================================= Abgabe: Mittwoch, 29.5.02 in der Uebungsstunde. ----------------------------------------------- Def.: Ein "Grundterm" ist ein Term, in dem keine Variable vorkommt. Aufgabe 7 --------- a) Schreibe ein Prolog-Praedikat, (3 Punkte) element(+Grundterm,+Liste von Grundteren) mit dem man feststellen kann, ob ein Grundterm in einer Liste von Grundtermen vorkommt. Es soll vorausgesetzt werden, dass die Eingabe nur Grundterme enthaelt. (Erst spaeter werden wir sehen, wie man ein Testpraedikat ist_Grundterm(+Term) schreiben kann.) b) Schreibe (mit Teil a)) ein Praedikat (5 Punkte) difference(+Liste1,+Liste2,-Ergebnis), das bei Eingabe zweier Listen von Grundtermen, Liste1 und Liste2, im dritten Argument, Ergebnis, eine Liste der Elemente ausgibt, die in Liste1 vorkommen, aber nicht in Liste2. Aufgabe 8 (4 Punkte) --------- Schreibe ein Praedikat jeder_zweite(+Liste1,-Liste2), das zu einer Eingabeliste von Grundtermen, Liste1, eine Ausgabeliste Liste2 bildet, die jeden zweiten Term von Liste1 enthaelt, und zwar in derselben Reihenfolge wie Liste1. Beispiel: Man sollte erhalten ?- jeder_zweite([a,b,c,d,e,f],Liste2). => Liste2 = [b,d,f] ?- jeder_zweite([a,b,c],Liste2). => Liste2 = [b]