K-Prolog Compiler Version 6.0 
$PLC/sample/list.pl $PLC/sample/set.plにあります。 これらに含まれている述語は以下のものです。
[例] list_top([a,b,c,d,e,f],3,L) --> L = [a,b,c] list_bottom([a,b,c,d,e,f],3,L) --> L = [d,e,f] list_copy([a,b,c,d,e,f],3,2,L) --> L = [c,d] list_cut([a,b,c,d,e,f],3,2,L) --> L = [a,b,e,f] list_paste([a,b,c,d,e,f],3,[x,y],L) --> L = [a,b,x,y,c,d,e,f] list_append([a,b,c],[x,y,z],L) --> L = [a,b,c,x,y,z][御注意]
[例] list_first([a,b,c],E,L) --> E = a, L = [b,c] list_nth([a,b,c,d,e,f],4,E) --> E = d list_last([a,b,c,d,e,f],E) --> E = f list_delete([a,b,c,d,e,f],d,L) -->L = [a,b,c,e,f] list_index([a,b,c,d,e,f],d,N) -->N = 4 list_isMember([a,b,c,d,e,f],d) -->true list_isMember([a,b,c,d,e,f],x) -->fail
merge/3は、二つの標準順序でソートされたリストXとYをマージし
ます。結果Lはソートされたリストになります。
uniq/2は、ソートされたリストXの同一の要素を一つにまとめたもの
をLに返します。
reverse/2は、リストXを逆順に並べ換えたものをLに返します。
[例]
list_sort([p(c,3),p(b,2),p(a,4)],comp2(_,_),L)
--> L = [p(b,2),p(a,3),p(c,4)]
ただし、
:-public comp2/2.
comp2(X,Y):-
arg(2,X,A),arg(2,Y,B),
A > B. % 第二引数で比較する。
と定義されているものとします。
list_sort([p(a,3),p(b,2),p(c,4)],L)
--> L = [p(b,2),p(a,3),p(c,4)]
list_merge([a,b,d,e,e,f],[c,d,f,f],L)
-->L = [a,b,c,d,d,e,e,f,f,f]
list_uniq([a,b,c,d,d,d,e,e,f],L) --> L = [a,b,c,d,e,f]
list_reverse([a,b,c,d,e,f],L) --> L = [f,e,d,c,b,a]
[御注意]
[例]
set_union([a,c,e,f],[b,c,f,g],L)
--> L = [a,b,c,e,f,g]
set_intersect([a,c,e,f],[b,c,f,g],L) --> L = [c,f]
set_difference([a,c,e,f],[b,c,f,g],L) --> L = [a,e]
set_isSubset([a,b,c,d,e,f],[b,c,f]) --> true
set_isSubset([a,b,c,d,e,f],[b,c,g]) --> fail
[御注意]