1. . last(type_of_elements, list). , , . . . last(X, L) , X L.
:
?- last(3, [1, 2, 3])
Yes
?- last(X, [1, 2, 3])
2. . exclude(type_of_elements, list, list). exclude(X, Y, Z) X Y, Z.
:
?- exclude(2, [1, 2, 3, 2], Z)
Z=[1, 3, 2]
3. . . reverse(list, list). , .
:
?- reverse([1, 2, 3], Y)
Y=[3, 2, 1]
4. . minimum(type_of_elements, integer, list). , , , . . . minimum(X, N, L) , X L, N X .
:
?- minimum(1, 4, [2, 5, 3, 1, 7])
Yes
?- minimum(X, N, [2, 5, 3, 1, 7])
X=1, N=4
5. . . :
FOR i:= 2 TO n DO
x:= a[i];
x
a[1]... a[i]
END
:
44 55 12 42
i = 2 44 55 12 42
i = 3 12 44 55 42
i = 4 12 42 44 55
insertion_sort(list, list). , .
:
?- insertion_sort([2, 5, 3, 1, 7], Y)
Y=[1, 2, 3, 5, 7]
1. .
2. find(X, [1, 2, 3]) X :
X=1
X=2
X=3
find :
find(Elem, [_|Tail]):-find(Elem, Tail).
find(Elem, [Elem|_]).
find(X, [1, 2, 3]) X :
|
|
X=3
X=2
X=1
, .
3. .
4. .
5. {P1, P2,..., Pn}. . 1/2 ò xdy ydx, . , area(Chain, Area). Chain . Area .
area([Tuple], 0).
area([(X1, Y1), (X2, Y2)|XYs], Area):-
area([(X2, Y2)|XYs], Area1),
Area=(X1*Y2-Y1*X2)/2+Area1.
, , .
, .
4