Скачиваний:
10
Добавлен:
01.05.2014
Размер:
2.04 Кб
Скачать
fact(0, 1).
fact(N, X):- N1 is N-1, fact(N1, Z), X = N * Z.

fib(0, 1).
fib(1, 1).
fib(N, F):- N1 is N-1, N2 is N-2, fib(N1, F1), fib(N2, F2), F is F1+F2.

aff(0, 0).
aff(1, 1).
aff(N, F):- N1 is N-1, N2 is N-2, aff(N1, F1), aff(N2, F2), F is (F1+F2)/2.

m(X, [X|List]).
m(X, [A|List]):-m(X, List).

length([], 0).
length([X|List], F):-length(List, F1), F is F1+1.

adda(X, L, [X|L]).

addz(X, [], [X]).
addz(X, [A|List], List1):-addz(X, List, Z), adda(A, Z, List1).

addn(X, 1, List, Listout):-adda(X, List, Listout).
addn(X, Number, [A|List], Listout):-Number1 is Number-1, addn(X, Number1, List, Z), adda(A, Z, Listout).

inverse([A], [A]).
inverse([A|List], List1):-inverse(List, Z), addz(A, Z, List1).

getn(1, [A|List], A).
getn(Number, [A|List], X):-Number>1, Number1 is Number-1, getn(Number1, List, X).

remove(X, [X|List], List).
remove(X, [A|List], ListOut):-member(X, List), A=\=X, remove(X, List, Z), adda(A, Z, ListOut).

removen(1, [X|List], List).
removen(Number, [A|List], Listout):-Number1 is Number-1, removen(Number1, List, Z), adda(A, Z, Listout).

iseql([], []).
iseql([X|List1], [X|List2]):-iseql(List1, List2).

mult(M, [], []).
mult(M, [X|List], Listout):-mult(M, List, Z), A is M*X, adda(A, Z, Listout).

plus(M, [], []).
plus(M, [X|List], Listout):-plus(M, List, Z), A is M+X, adda(A, Z, Listout).

minus(M, [], []).
minus(M, [X|List], Listout):-minus(M, List, Z), A is X-M, adda(A, Z, Listout).

div(M, [], []).
div(M, [X|List], Listout):-div(M, List, Z), A is X/M, adda(A, Z, Listout).

concat(L, [], L).
concat(List1, [X|List2], L):-addz(X, List1, Z), concat(Z, List2, L).

split(0, List, [], List).
split(1, [X|List], [X], List).
split(Number, List, List1, List2):-Number1 is Number-1, split(Number1, List, Y, Z), getn(1, Z, X), removen(1, Z, List2), addz(X, Y, List1).

scalar([], [], 0).
scalar([X|List1], [Y|List2], F):-scalar(List1, List2, F1), F is F1+X*Y.

norm(X, F):-scalar(X, X, F1), F is sqrt(F1).
Соседние файлы в папке Простейшие функции на прологе.