このページでは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).