Скачиваний:
7
Добавлен:
10.04.2022
Размер:
781 б
Скачать
% 1. Арифметические операции
% Факториал
fact(0, 1) :- !.
fact(N, X):- N1=N-1, fact(N1, X1), X=N*X1.

% Максимум списка
maxN([], X, X).
maxN([H|T], X, Y) :- X < H, maxN(T, H, Y).
maxN([H|T], X, Y) :- X >= H, maxN(T, X, Y).

% Минимум списка
minN([], X, X).
minN([H|T], X, Y) :- X > H, !, minN(T, H, Y).
minN([H|T], X, Y) :- minN(T, X, Y).

% Сумма списка
sumL([], 0).
sumL([H|T], X) :- sumL(T, X1), X = H + X1.

% Длина списка
len([], 0).
len([_|T], X) :- len(T, X1), X=1+X1.

% Середина списка
midN([], 0).
midN(L, Result) :- sumL(L, X), len(L, C), Result = X / C.

:- initialization(main, main).

main(Argv) :-
L = [1,2,3,4,5,-6,7,-3],
fact(5,F).
Соседние файлы в папке лаба 5