Untitled
unknown
prolog
2 years ago
1.1 kB
4
Indexable
% % length ЕСТЬ в SWI_Prolog % my_length([], 0). % my_length([_|T], L) :- my_length(T, L1), L is L1+1. % % member ЕСТЬ в SWI_Prolog % my_member(H, [H|_]). % my_member(H, [_|T]) :- my_member(H, T). % % append % my_append([], X, X). % my_append([A|X], Y, [A|Z]) :- append(X,Y,Z). % % remove % my_remove(X, [X|T], T). % my_remove(X, [Y|T], [Y|T1]) :- my_remove(X, T, T1). % % permute % my_permute([],[]). % my_permute(L,[X|T]) :- my_remove(X,L,R), my_permute(R,T). % % sublist % my_sublist(S, L) :- my_append(_, L1, L), my_append(S,_, L1). % №1.1 Variant 10 %insert % Вставляем элемент Elem на позизию 0 в список L получаем список, % где Elem - голова, L - хвост результирующего списка % my_insert(Elem, 0, L, [Elem|L]). % my_insert(Elem, I, [H|L], [H|T]) :- I1 is I-1, my_insert(Elem, I1, L, T). % №1.2 Variant 15 % Вычисление позиции первого отрицательного элемента в списке first_neg([H|_], 0) :- H < 0, !. first_neg([_|T], I) :- first_neg(T, I1), I is I1 + 1.
Editor is loading...