このページではJavaScriptを使用しています。

サンプルコード

quick sort

説明
リストの中身を昇順に並べ替えます
使用例
| ?-qsort([4,1,7,8,2],L).
L = [1,2,4,7,8]
yes
プログラム
/* quick sort */
:- public qsort/2.

qsort(L,R):-qsort(L,[],R).

:- mode qsort(+,+,-).

qsort([],L,L).
qsort([A|L],R,ANS):-
	partition(L,A,L1,L2),
	qsort(L1,[A|X],ANS),
	qsort(L2,R,X).

:- mode partition(+,+,-,-).

partition([],_,[],[]).
partition([X|L],A,[X|L1],L2):- 
	X=‹A,
	!,
	partition(L,A,L1,L2).
 partition([X|L],A,L1,[X|L2]):- 
	partition(L,A,L1,L2).