SWI-Prolog ----------------

0 голосов
70 просмотров

SWI-Prolog
----------------


image

Информатика (9.4k баллов) | 70 просмотров
Дан 1 ответ
0 голосов

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).

Удачи, в информатике)

(4.2k баллов)
0

Поставь, пожалуйста лучшее решение, для меня это очень важно, спасибо за внимание!