Вот что придумал (Turbo Prolog 2.0):
Код:
CONSTANTS
spisok=[3,1,0,-1,2,1]
DOMAINS
int=integer   
list = integer*
PREDICATES
ins_sort(int,int,list,list)
CLAUSES
ins_sort(0,0,[ ],[ ]). 
ins_sort(0,0,[H|T],L):-
   ins_sort(0,0,T,T_Sort),
   ins_sort(1,H,T_Sort,L). 
ins_sort(1,X,[],[X]). 
ins_sort(1,X,[H|T],[H|T1]):-
   X>H,!,
   ins_sort(1,X,T,T1). 
ins_sort(1,X,T,[X|T]).
GOAL
ins_sort(0,0,spisok,X), write(X).
Извращение, конечно 
