помогите кто знает как это сделать вот выложил прогу может оттуда что можно сдуть(
Есть похожая программка которая удаляет из списка первого вхождения заданного элемента.
Код
include "labanumberthree.inc"
domains
spisok=INTEGER*
predicates
del(spisok,integer,spisok).
clauses
del([],X,[]).
del([H|X],H,X). %- будет работать в случае, если мы хотим удалить первый элемент из списка.
del([H|T],X,[H|T1]):-X<>H, del(T,X,T1). /* -будет работать если мы хотим удалить не первый элемент из списка ,в данном случае эта строка работает так: 1)сравнивается 1й элемент хвостовой части 1го списка с заданным значением пользователя ,если они не равны, то этот элемент заносится во второй пустой список 2)рекурсивно проверяется 2й элемент хвостовой части с дальнейшими последующими действиями и далее все остальные 3) При нахождении одинаковых элементов он не заносится в новый список.*/
goal
del([1,2,3,4,5,6,2,1,2],2,X).%-будет выдан ответ: X=[1,3,4,5,6,2,1,2]
domains
spisok=INTEGER*
predicates
del(spisok,integer,spisok).
clauses
del([],X,[]).
del([H|X],H,X). %- будет работать в случае, если мы хотим удалить первый элемент из списка.
del([H|T],X,[H|T1]):-X<>H, del(T,X,T1). /* -будет работать если мы хотим удалить не первый элемент из списка ,в данном случае эта строка работает так: 1)сравнивается 1й элемент хвостовой части 1го списка с заданным значением пользователя ,если они не равны, то этот элемент заносится во второй пустой список 2)рекурсивно проверяется 2й элемент хвостовой части с дальнейшими последующими действиями и далее все остальные 3) При нахождении одинаковых элементов он не заносится в новый список.*/
goal
del([1,2,3,4,5,6,2,1,2],2,X).%-будет выдан ответ: X=[1,3,4,5,6,2,1,2]