Списки. Удалить отрицательные элементы - Prolog

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

Задание звучит так: Организовать ввод и формирование списка вещественных чисел с проверкой. Сформировать список положительных элементов исходного списка. Упорядочить полученный список по возрастанию значений элементов. Подскажите, как из списка получить список без отрицательных элементов? Вот что я написала по заданию:
vvlist1 :-write('задайте длину списка'),read(N), vvodlist(N,L),sort_insert(L,LS) ,write('L= '),write(LS).
delete_term([],[]).
delete_term(L,LS):-
sort_insert([],[]).
sort_insert([X|T],OL):-sort_insert(T,OT),insert(X,OT,OL).
insert(X,[],[X]).
insert(X,[Y|T],[X,Y|T]):- X=<Y.
insert(X,[Y|T],[Y|T1]):- X>Y,insert(X,T,T1).

Код к задаче: «Списки. Удалить отрицательные элементы - Prolog»

textual
?- Xs = [2, 3, 0, -1, 1], setof(X, (member(X, Xs), X > 0), Ys).
Xs = [2, 3, 0, -1, 1],
Ys = [1, 2, 3].

10   голосов, оценка 3.900 из 5


СОХРАНИТЬ ССЫЛКУ