<div class="notebook"> <div class="nb-cell markdown" name="md1"> # 04.07. all_members Für die Definition des Prädikate kann ``member/2`` verwendet werden. Schreibe ein Prädikat ``all_members/2``, das zwei Listen L1 und L2 nimmt und gelingt, wenn alle Elemente von L1 auch Element von L2 sind. L1 ist das erste und L2 das zweite Argument von ``all_members/2.`` </div> <div class="nb-cell program" data-background="true" name="p1"> %%% Zu Erinnerung, my_member/2 aus der Vorlesung, alternativ kann member/2 verwendet werden: my_member(X,[X|_]). my_member(X,[_|T]) :- my_member(X,T). % evt. Stopklausel (meistens vor dem Prädikat) % all_members/2 % Tipps: (Rekursion, Head-,Tailverarbeitung, member/2) all_members(_,_) :- write("+++ Dein Programmcode hier! +++"). </div> <div class="nb-cell query" name="q1"> write("Die Menge [a,c] ist Teilmenge der Menge [a,b,c,d]: "), all_members([a,c],[a,b,c,d]). </div> <div class="nb-cell query" name="q2"> write("Die Menge [a,e] nicht ist Teilmenge der Menge [a,b,c,d]: "), all_members([a,e],[a,b,c,d]). </div> <div class="nb-cell query" name="q3"> write("Ein Element ist keine Menge bzw. Liste, daher: "), all_members(a,[a,b,c,d]). </div> </div>