>>746
>これはあくまでバックトラックを理解するための例として

初心者に対してバックトラックの理解を助ける最初の例として、
失敗駆動ループは不適切という話だ
もっと単純で分かりやすい例を持ち出すべきだった

>ただし、どうしても失敗駆動が必要になることもあるからね

そのとおりだね
どうしても使わなければ解決できない問題に対してだけ使うべき
たとえば>>744 のコードだと、全解探索結果リスト Xs が
メモリに乗り切れないほど巨大という極限のケースでは
失敗駆動ループ技法も(>>745と合わせて)検討候補になるだろう

逆に言えば、一般的な多くのケースで Prolog らしい
エレガントな解法があるのに、ただ書き慣れているからという理由で
安易に失敗駆動ループ技法を使うのは中級プログラマとして失格だと思う
だから >>744 ではバッド・ノウハウの類いと書いた