Prolog – insert – вмъкване на елемент в списък


Вмъкване на елемент към началото на списък на Пролог. Върви и само с първия ред.
Вторият ред се използва за разпознаване дали елемент е вкаран в списък (като member).

insert(X,L,[X|L]).
insert(X,[Y|L1],[Y|L2]):- insert(X,L1,L2).
?- insert(z,[a,b,c,d],I).
% z,a,b,c,d

Лесно може да се преработи да вкарва член на определена позиция в списъка, или след определен член.
На определена позиция:

insert(X,1,L,[X|L]).
insert(X,N,[Y|L1],[Y|L2]):- N1 is N-1, insert(X,N1,L1,L2).
?- insert(z,3,[a,b,c,d],N),write(N).
%[a,b,z,c,d]

След определен член

insert(X,[],L,[X|L]).
insert(X,Y,[Y|L1],[Y|L2]):- insert(X,[],L1,L2).
insert(X,Z,[Y|L1],[Y|L2]):- insert(X,Z,L1,L2).
?- insert(z,b,[a,b,c,d],N),write(N).
%[a,b,z,c,d]
  1. Няма коментари.
(will not be published)