1) % Тестирование (текст программы)
%1 ?- p(s,3,[1,2,3,4,t],T).
%
%T = [1, 2, s, 3, 4, t] ;
%No
%2 ?- p(a,1,[1,2,3,4,t],T).
%T = [a, 1, 2, 3, 4, t] ;
p(X,1,L,[X|L]).
p(X,N,[A|V],[A|L]):-
N>1,
N1 is N-1,
p(X,N1,V,L).
2)Код к задаче: «Удаление N-го элемента из списка - Prolog»
1.p([],N,'Error'):-N>0.
2.p([_|Tail],N,'Error'):-N1 is N-1,p(Tail,N1,"Error").
3.p([_|BL],1,BL).
4.p([AL|BL],N,[AL|CL]) :-N>1, N1 is N-1, p(BL,N1,CL).
Полное решение и подробнее будет выглядеть, так:
% Тестирование
%1 ?- p(1,[1,2,3,a,s,d,4,5],O).
%O = [2, 3, a, s, d, 4, 5] ;
%2 ?- p(4,[1,2,3,a,s,d,4,5],O).
%O = [1, 2, 3, s, d, 4, 5] ;
p(1,[A|L],L).
p(N,[A|V],[A|L]):-
p(N1,V,L).
Удачи, в информатике)
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
1) % Тестирование (текст программы)
%1 ?- p(s,3,[1,2,3,4,t],T).
%
%T = [1, 2, s, 3, 4, t] ;
%
%No
%2 ?- p(a,1,[1,2,3,4,t],T).
%
%T = [a, 1, 2, 3, 4, t] ;
p(X,1,L,[X|L]).
p(X,N,[A|V],[A|L]):-
N>1,
N1 is N-1,
p(X,N1,V,L).
2)Код к задаче: «Удаление N-го элемента из списка - Prolog»
1.p([],N,'Error'):-N>0.
2.p([_|Tail],N,'Error'):-N1 is N-1,p(Tail,N1,"Error").
3.p([_|BL],1,BL).
4.p([AL|BL],N,[AL|CL]) :-N>1, N1 is N-1, p(BL,N1,CL).
Полное решение и подробнее будет выглядеть, так:
% Тестирование
%1 ?- p(1,[1,2,3,a,s,d,4,5],O).
%
%O = [2, 3, a, s, d, 4, 5] ;
%
%No
%2 ?- p(4,[1,2,3,a,s,d,4,5],O).
%
%O = [1, 2, 3, s, d, 4, 5] ;
%
%No
p(1,[A|L],L).
p(N,[A|V],[A|L]):-
N>1,
N1 is N-1,
p(N1,V,L).
Удачи, в информатике)