논리형 프로그래밍

Prolog로 대표되는 논리형 프로그래밍(LP, Logical Programming). 아직 나에게는 미지의 영역.
 
 
 
 
어떤 분이 쓰신 종료하는 결정적 무작위 정렬 .
sorted([]). sorted([_]). sorted([X1, X2| Xs]) :- X1 =< X2, sorted([X2 | Xs]). insert(X, Ys, [X | Ys]). insert(X, [Y | Ys], [Y | Zs]) :- insert(X, Ys, Zs). reorder([], []). reorder([X | Xs], Zs) :- reorder(Xs, Ys), insert(X, Ys, Zs). mysort(Xs, Ys) :- reorder(Xs, Ys), sorted(Ys).
mysort([0,1,4,3,7,3,8,2, 90, 50, 70, 30, 10], X).
위와 같이 부르면 시간 초과 난다... 결이는 10개 미만으로....