Вставка элемента в список по порядковому номеру.
Код на Lisp predicates nondeterm ins(slist,slist,slist,integer,string,integer) revers(slist, slist, slist) /* 1- Исходный список 2- Вспомогательный список, при вызове пустой 3- Результирующий список 4- Номер элемента после которого вставить элемент 5- Элемент который вставляется 6- Начальное значение счётчика */ clauses revers([], L, L). revers([X|L1], L2, ResultNew):-revers(L1, [X|L2],ResultNew). ins(L,L1,L2,Num,El,Num):-N=Num+1,ins(L,[El|L1],L2,Num,El,N). ins([],L1,L2,Num,_,N):-Num<N,revers(L1,[],L2). ins([],_,[],_,_,_):- write("В списке гораздо меньше элементов!, Количество элементов в списке не соответствует порядковому номеру"). ins([X|L], L1, L2,Num, El, N):-N1=N+1,ins(L,[X|L1],L2,Num,El,N1). goal ins(["0","1","3","4","5","6","7"],[],Res_list,2,"added 2",0).
|