Вставить элемент списка на заданную позицию - Prolog

Узнай цену своей работы

Формулировка задачи:

Задача: вставить элемент элемент списка в прологе на заданную позицию. Реализовал вставку на первую позицию, а вот как дальше - не знаю. Help!
Листинг программы
  1. domains
  2. list = integer*.
  3. class predicates
  4. lisp:(integer, integer, list) nondeterm anyflow.
  5. ins:(integer,list,list,integer) nondeterm anyflow.
  6. clauses
  7. lisp(B,B,[B]):-!.
  8. lisp(A,B,[A|L]):-A2 = A+3, lisp(A2,B,L).
  9. ins(X,[X|L],L,N).
  10. ins(X,[X|L1],[X|L],N):-ins(X,L1,L,N).
  11. run() :-
  12. init(),
  13. write("Добавить элемент в список."), nl,
  14. lisp(3,18,L), write(L),nl,
  15. write("chislo="),X=read(),
  16. write("positsiya="),N=read(),
  17. ins(X, L1,L,N),
  18. write("L1=",L1),nl,
  19. fail;

Решение задачи: «Вставить элемент списка на заданную позицию»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. ins_in_pos(intl,int,int,intl)
  7.  
  8. clauses
  9. ins_in_pos([],N,_,_) :- N>0, fail.
  10. ins_in_pos(T,0,Q,[Q|T]).
  11. ins_in_pos([H|T],N,Q,[H|R]) :- N>0, N1=N-1, ins_in_pos(T,N1,Q,R).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы