Вставить элемент списка на заданную позицию - Prolog
Формулировка задачи:
Задача: вставить элемент элемент списка в прологе на заданную позицию. Реализовал вставку на первую позицию, а вот как дальше - не знаю.
Help!
Листинг программы
- domains
- list = integer*.
- class predicates
- lisp:(integer, integer, list) nondeterm anyflow.
- ins:(integer,list,list,integer) nondeterm anyflow.
- clauses
- lisp(B,B,[B]):-!.
- lisp(A,B,[A|L]):-A2 = A+3, lisp(A2,B,L).
- ins(X,[X|L],L,N).
- ins(X,[X|L1],[X|L],N):-ins(X,L1,L,N).
- run() :-
- init(),
- write("Добавить элемент в список."), nl,
- lisp(3,18,L), write(L),nl,
- write("chislo="),X=read(),
- write("positsiya="),N=read(),
- ins(X, L1,L,N),
- write("L1=",L1),nl,
- fail;
Решение задачи: «Вставить элемент списка на заданную позицию»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- ins_in_pos(intl,int,int,intl)
- clauses
- ins_in_pos([],N,_,_) :- N>0, fail.
- ins_in_pos(T,0,Q,[Q|T]).
- ins_in_pos([H|T],N,Q,[H|R]) :- N>0, N1=N-1, ins_in_pos(T,N1,Q,R).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д