>>753
>それから組込述語findall/3の設計からくる問題なのだが、repeatを持つ
>標準入力からの入力。(ここでは整数に限定しているが)
>
>?- findall(X,(repeat,read(X),(X=end_of_file,!,fail;integer(X))),L).
>
>この制御のためのカットも他に手がない。

この単純な入力処理であれば、同じ振る舞いをするコードをカット無しで書ける
  http://ideone.com/vBLt2R
失敗駆動ループや findall を使わず素直に再帰で表現した初歩的なコードだ

すでに >>744,747 で書いたように、失敗駆動ループはバッド・ノウハウの類いである
また組込み述語 findall/3 の探索するゴールは、 >>748 で例を示したように
副作用を含むべきではない
(組込み述語 read/1 には、入力ストリームを「読み進める」という副作用がある)

率直に言って、この程度の単純な入力処理に対して
「この制御のためのカットも他に手がない」などと安易に判断してしまう >>756 は、
失敗駆動ループや findall といった手続き型による「小手先のテクニック」にこだわるあまり、
論理プログラミングの持つ本質的な単純明快さを見失っているように見える