Предикат, переставляющий все отрицательные элементы числового списка в конец списка - Prolog
Формулировка задачи:
Нужна программа, переставляющая все отрицательные элементы числового списка в конец списка
Например: [1,-2,3,-4,-7,4,5] -> [1,3,4,5,-2,-4,-7]
Помогите кто может
Решение задачи: «Предикат, переставляющий все отрицательные элементы числового списка в конец списка»
textual
Листинг программы
domains int=integer intl=int* predicates split(intl,intl,intl) app(intl,intl,intl) coll(intl,intl) clauses split([],[],[]). split([H|T],[H|P],N) :- H>=0, split(T,P,N). split([H|T],P,[H|N]) :- H<0, split(T,P,N). app([],X,X). app([H|T],X,[H|Y]) :- app(T,X,Y). coll(L,R) :- split(L,P,N), app(P,N,R).