Предикат, переставляющий все отрицательные элементы числового списка в конец списка - 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).

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

9   голосов , оценка 4.111 из 5
Похожие ответы