>>271
それと、
下のPrologの副目標として、データベースシステムを参照にいく場合とは、
元々Prologの述語としてデータベースがあり、
そのコードをデータベースシステムの照会にそのまま借用したいということだろう。

この場合通常、Prologの副目標は最初にテーブルの参照があって、その後に
単一化された引数の検査という順序で書かれている。一方、このコードをSQL文字列に
変換するとなると、sql文を発行する時点で、where句の条件を知っていないと効率の
良い照会にはならない。
つまり、テーブルの参照は遅延しておいて、その後の副目標群の解析を先に進める必要が
ある。そのためには、どこまで解析すればよいのかを示す何かが必要になり、多くの場合、
ブロック構造が導入されることになる。
この時点で少なくとも>>271のコードそのものではなくなる。