/* Разделение списка на два подсписка */
domains
/* Нижнее пороговое значение */
low=symbol
/* Верхнее пороговое значение */
high=symbol
list=symbol *
predicates
sub_list(low,high,list,list,list)
clauses
/* Выделение в первую подгруппу */
sub_list(Low,High,[H|T],L1,[H|L2]):-H
/* Выделение во вторую подгруппу */
sub_list(Low,High,[H|T],[H|L1],L2):-H>=Low,H<=High,sub_list(Low,High,T,L1,L2).
/* Добавление первого подсписка */
sub_list(Low,High,[H|T],L1,[H|L2]):-sub_list(Low,High,T,L1,L2),H>High.
sub_list(_,_,[],[],[]). |