組合せ同様これも非決定性の述語として作る。組込述語のselect/3を使うことによって、更に洗練された述語に仕上がる。順列(_,0,[]).順列(L,N,[A|L2]) :-        select(A,L,R),        N_1 is N - 1,        順列(R,N_1,L2).select/3はmember/2に近い述語だが、ひとつ要素を取った残りが第三引数に単一化されている。そういう非決定性の述語である。?- 順列([a,b,c],2,L).L = [a, b] ;L = [a, c] ;L = [b, a] ;L = [b, c] ;L = [c, a] ;L = [c, b] ;false.のように順列が取れる。これをリストに取りたい場合は、ここでもfindall/3を使って、?- findall(L,順列([a,b,c],2,L),LL).LL = [[a,b],[a,c],[b,a],[b,c],[c,a],[c,b]].となる。
異なるn個のものから異なるr個のものを選ぶ、組合せの総数は公式から、nCr(N,R,X) :-        U is N - R + 1,        階乗(U,N,K1),        階乗(R,K2),        X is K1 // K2 .と Prolog では定義される。階乗の定義はこのプログラム例の中で既出である。findall を使い、組合せ が解を生成するごとに1をリストに格納することによっても、組合せの総数を求めることができる。nCr(N,R,X) :-        findall(1,組合せ(N,R,_),L),        length(L,X).ここでは、格納する値を1としたが、実はこれはアトム、数値、変数、何が来てもよい。実行例?- nCr(4,3,X).X = 4
リストによって与えられた集合要素のN個の組合せ。非決定性の述語である。組合せ(X,1,[A]) :-        member(A,X).組合せ([A|Y],N,[A|X]) :-        N > 1,        N_1 is N - 1,        組合せ(Y,N_1,X).組合せ([_|Y],N,A) :-        N > 1,        組合せ(Y,N,A).第二引数が1になる則ち組合せの最後の一個を残りリストXの中からmember/2を使って順に選択する。これが第一節の意味である。第二節と第三節はバックトラックして全てのN-1個の組合せを作る非決定性の再帰的述語のパターンである。ここまでで、N-1個の全組み合わせが組み上がることを前提に、第一節でまだ選択されていない最後の一個をこれまたmember/2によって全ての可能性を選択して付加している。実行例?- 組合せ([a,b,c,d],3,X).X = [a,b,c];X = [a,b,d];X = [a,c,d];X = [b,c,d];false全ての組合せを蒐集するには、findall を用いればよい。述語を非決定性に定義することを基本として、必要な場合に findall によって全解をリストに取得する。これは Prolog の代表的なプログラムスタイルである。全ての組合せ(L,N,LL) :-        findall(X,組合せ(L,N,X),LL).実行例?- 全ての組合せ([a,b,c,d],3,LL).LL = [[a,b,c],[a,b,d],[a,c,d],[b,c,d]]
キュー操作が出てきたところでスタック操作について述べる。スタックの定義はさらに簡単である。スタックを生成する([]).スタックに要素を追加する(_pushされる要素,_push前のスタック,[_pushされる要素|_push前のスタック]).スタックから要素を取り出す([_popされる要素|_pop後のスタック],_popされる要素,_pop後のスタック).利用法は、?- スタックを生成する(A), ・・ ,スタックに要素を追加する(2,A,B), ・・ ,スタックに要素を追加する(3,B,C), ・・ ,スタックから要素を取り出す(C,E,D), ・・・上記の例では現在のスタックは、D であり、内容は [3] である。2 は一度プッシュされたがその後ポップされてしまった。
西暦2045年、ロボットが人間と同じように意思を持つようになり、人類はロボット軍との果てしない戦いを続けていた。そんな中、人類側に一人のリーダーが現れ、ロボット軍を壊滅状態に追い込む。対するロボット軍は人類側のリーダーの母親となる運命の女性・花歩を暗殺すべく、時空を越えて西暦2006年に部隊を送り込んだ！人類側もそれを阻止すべく、体の半分がサイボーグである超戦士・キャプテン☆ボンバーを2006年に送り込むのであった…。 見どころはキャプテン☆ボンバーに対抗してロボット軍が毎回繰り出す各国の文化を伝える秘密兵器との文化自慢合戦である。「キャプテン☆ボンバーはチーズバーガーを食べると力が1.25倍になり、若干強くなった気がするのだ!!」現代にやって来たボンバーと彼の部下・マイケル須知は花歩を守りながらロボット軍の刺客との戦いを繰り広げ、花歩はその間にマイケルと結ばれ、未来の人類のリーダーとなる娘・麻衣を授かった。しかし、第3回で遂に花歩はロボット軍の手に掛かり、命を落としてしまう…。第4回からは時代が2021年に移り、15歳に成長した花歩の娘・麻衣、キャプテン、須知がロボット軍の目を逃れるために各地を旅し、いろんな姿に変装して働きながらロボット軍を迎え撃つ。ロボット軍の殺人ロボットは各国の文化にこだわらない、殺人ロボット役の芸人にちなんだものになった。最終回は時代が2035年になる。この時代に、小籔博士によって「ロボットに意思を持たせるチップ」が開発される。ボンバー、マイケル、麻衣の三人はロボットが意思を持たなければ人間とロボットの戦いはなくなると考え、小籔博士の研究を阻止しようと小籔博士の実家のうどん屋にアルバイトとして住み込む。しかし、小籔博士は偶然チップを開発してしまった。一方、ロボット軍はロボット軍総統と共に麻衣を殺害しようと計画していた。