V příkladech nelze předpokládat existenci vestavěných predikátů pro operace se seznamy, všechny predikáty nad seznamy můsíte implementovat, jinak bůde odpovídajícím způsobem sníženo bodové ohodnocení. 1. příklad, 9 bodů Napište program skalarni( A, B, Skalarni) pro výpocet skalárního soůcinů Skalarnize dvoů seznamů císel A, B, tj. Skalarni = Ai x Bi + A2 x B2 + • • • + An x Bn. Predpokládejte, že seznamy A a B mají stejnoů délků. príklad volání: :- skalarni( [1,2,3], [4,5,6], S). S=32 (1 x 4 + 2 x 5 + 3 x 6) 2. příklad, 12 bodů Napište program smaz_vzorek( Vzorek, Seznam, Zbytek), který ze seznamů Seznam smaze prvni vyskyt podseznamů Vzorek a výsledek vrátí v seznamů Zbytek. Predpokládejte, že Vzorek a Seznam jsoů seznamy císel. príklad volání: :- smaz_vzorek( [3,4,5], [1,2,3,4,5,6], Z ). Z=[1,2,6] 3. příklad, 9 bodů Uvažujte následující logické programy (1) r(X) :- s(X,Y),t(X). (2) r(X) :-t(X). (3) s(1,2). (4) s(3,4). (5) t(3). (1) r(X) :- !, s(X,Y), t(X). (2) r(X) :-t(X). (3) s(1,2). (4) s(3,4). (5) t(3). (1) r(X) :- s(X,Y), !, t(X). (2) r(X) :-t(X). (3) s(1,2). (4) s(3,4). (5) t(3). (1) r(X) :- s(X,Y), t(X), !. (2) r(X) :-t(X). (3) s(1,2). (4) s(3,4). (5) t(3). (1) r(X) :- s(X,Y), !, t(X), !. (2) r(X) :- !, t(X). (3) s(1,2). (4) s(3,4). (5) t(3). a popište jejich chování pri dotazů :- r(A), write(A), fail. Krome výstůpů jednotlivých programů je nůtné ůvést i slovní popis, který popíše vliv všech operátorů řezů.