a.daļa
Programmas teksts:
/* Predikāts, kas atrod saraksta garumu */
garums([],0):-!.
garums([_|T],S):-garums(T,S1), S is S1 + 1.
/* Predikāts, kas atrod saraksta lielāko elementu */
/* Ja saraksts ir tukšs, lielākais elements ir 0 */
max([],0):-!.
/* Salīdzinām katru saraksta elementu ar līdz šim lielāko atrasto elementu */
max([H|T],X):-maxEval(T,H,X).
/* Papildus predikāts, kas salīdzina saraksta elementus */
maxEval([H|T],X,X1):- H>=X, !, maxEval(T,H,X1).
maxEval([H|T],X,X1):- H
maxEval([],X,X).
3. uzdevums
a(a(3,A,1),a(C,A,B),C)
a(Z,a(Y,b(3,2),X),a(2,5,Z))
{} a(3,A,1)=Z, a(C,A,B)=a(Y,b(3,2),X), C=a(2,5,Z)
{Z → a(3,A,1)}
a(C,A,B)=a(Y,b(3,2),X), C=a(2,5,a(3,A,1))
{Z → a(3,A,1)}…