引数が3のappendを示したが、4引数以上のものも便利である。?- append(L1,[X,Y],L3,[a,b,c,d]).L1 = [],X = a,Y = b,L3 = [c,d];L1 = [a],X = b,Y = c,L3 = [d];L1 = [a,b],X = c,Y = d,L3 = [];false.このように、中間のリストの前のリスト、後のリストという分解が簡単にできる。この append/4 の定義は append/3 の定義を利用してappend([],L2,L3,L4) :-        append(L2,L3,L4).append([E|L1],L2,L3,[E|L4]) :-        append(L1,L2,L3,L4).である。さらに append/4 ができれば、 append/5 はappend([],L2,L3,L4,L5) :-        append(L2,L3,L4,L5).append([E|L1],L2,L3,L4,[E|L5]) :-        append(L1,L2,L3,L4,L5).となっていく。一引数少ない append の定義ができていれば、このように、それを第一節の本体に使って簡単に定義を追加できる。
ユークリッドの互除法によって最大公約数を求める。数値演算の場合、他の言語とそれほど変わらない。Prologの特徴を求めるならば出力用の引数が必要とされることだろう。最大公約数(N,_最大公約数,_最大公約数) :-        0 is N mod _最大公約数.最大公約数(N,M,_最大公約数) :-        M_2 is N mod M,        最大公約数(M,M_2,_最大公約数).実行例?- 最大公約数(49,28,X).X = 7?-
事務計算などでは、123という整数を8桁の数値表現で、しかも頭部を空白ではなく0で埋めることを要求されることがある。これを上記 全ての要素が同じ を使って定義する。最初に枠を取り、頭部の桁不足の部分は 全ての要素が同じ を使って 0 を埋めている。ヘッドゼロサプライ(_桁数,_数値,_ヘッドゼロサプライ数値表現) :-        length(_桁数枠のリスト,_桁数),        number_chars(_数値,_数字のリスト),        append(_頭部の枠リスト,_数字のリスト,_桁数枠のリスト),        全ての要素が同じ(_頭部の枠リスト,'0'),        atom_chars(_ヘッドゼロサプライ数値表現,_桁数枠のリスト).number_chars、atom_chars ともに組込述語で、それぞれ、数値を分解して数字リストに、アトムを分解して文字リストとする。頭部の枠リストの桁（要素数）は述語 append が決定する。実行例?- ヘッドゼロサプライ(8,123,X).X = '000000123'?-ヘッドゼロサプレスの定義は、ヘッドゼロサプレス(_桁数,_数値,_ヘッドゼロサプレス数値表現) :-        length(_桁数枠のリスト,_桁数),        number_chars(_数値,_数字のリスト),        append(_頭部の枠リスト,_数字のリスト,_桁数枠のリスト),        全ての要素が同じ(_頭部の枠リスト,' '),        atom_chars(_ヘッドゼロサプレス数値表現,_桁数枠のリスト).変数名を変更したが実質的には 全ての要素が同じ の第二引数を変更するだけの違いである。
リスト要素が全て同じ。検査述語であると同時に、リストに変数を含む場合はそれを第二引数と単一化して全て同じ要素になるように企てる働きをする。さらに第二引数が変数で呼ばれたら、第一引数のリスト要素が全て同じ場合にのみ真となり、その要素と第二引数が単一化される。全ての要素が同じ([],_).全ての要素が同じ([A|R],A) :-        全ての要素が同じ(R,A).第一引数のリストのなかにひとつでも第二引数と異なった要素が現れたら、則ち偽となる。偽にならず、第一引数が[]まで到達したら、全ての要素は第二引数と同じであったことになる。実行例?- 全ての要素が同じ([2,2,2],2).true.?- 全ての要素が同じ([2,2,3],2).false.?- 全ての要素が同じ([2,2,2],X).X = 2?- 全ての要素が同じ([X,Y,Z],0).X = 0,Y = 0,Z = 0,?- 全ての要素が同じ([A,2,B],X).A = 2,B = 2,X = 2.最後の例は、Prologの単一化の = による制約表現とその制約解消過程が面白い。
1985年8月31日、ラミレスはアリゾナ州フェニックスからロサンゼルスに戻ってきた。コカインを手に入れるために数日ロサンゼルスを離れていたラミレスは、自分が指名手配されていることも知らず、意気揚々と街を闊歩していた。やがて行き付けのコンビニエンスストアに入り、好物のドーナツとペプシコーラを買おうとレジに立ったところで、自分の顔写真がデカデカと載った地元紙の一面が目に飛び込んだ。自分が殺人犯として指名手配されていることに気付きパニックに陥ったラミレスは店を飛び出し、3キロをわずか10分で走りぬけている。その後、3度にわたって自動車を強奪しようとして失敗、追いつめられたラミレスはヒスパニック系住人が多く住む地区へ逃げ込んだ。同胞に対する慈悲を期待してのことだったが、住民たちは逆に怒りを剥き出しにしてラミレスを追いたてた。というのも、ただでさえお決まりの人種差別で腹立たしく思っているところへ、ナイト・ストーカーの正体がヒスパニックの男だというので、非常に肩身の狭い思いをしていたのだ。ナイト・ストーカーが自分たちの街に逃げ込んできたと聞いた住民たちは、それぞれ怒りに燃えながらラミレスを追いまわし、とうとう彼は身柄を押さえられるに至った。通報を受けたアンドレアス・ラミレス保安官代理（同姓で年齢も同じく25歳だがむろん無関係）が現場へ駆けつけた時には、殺気立った住民らにリンチにかけられる寸前だったという。ラミレス保安官代理が現場へ到着すると、ラミレスは「天の助けだ。助けてくれ!俺だよ。あんたたちが捜している男は俺だ。こいつらに殺される前に俺を捕まえてくれ!」と泣き付いたという。ちなみに、ラミレス保安官代理は巷を騒がせている連続殺人犯が同じヒスパニックで、なおかつ同姓であったことから心ない同僚からの誹謗中傷を受けており、非常に憤慨していた。自らの手でナイト・ストーカーを逮捕し、名誉を挽回したことで大いに溜飲を下げたという。