AZ-Prolog ユーザーズマニュアル

#### サンプルコード

### 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).

▲