>>393 以降まとめ。
Prologも遅延実行のオプションがあるといいな。

データベース述語を引数に遅延実行項をかいて、
待たせると、この述語の参照方法が限られて
しまうから、view述語を別に定義してここに
遅延実行項を書くことで、処理系に特殊な
評価を必要とする副目標であることを伝えればよいだろう。
view述語を別に切るのは煩わしいけれど、
実務ではデータベース述語が20引数、などということも
珍しいものではない。このような場合view述語は
どうしても書くことになるから、それほど問題にはならない。

>>393 >>397 でdatabase() view()としたがこれは勿論、
実際には
?- 売上(A,B,C,X), ...
売上_vew(%A,%B,%C,X) :- 売上(A,B,C,X).
のように書かれることを意味している。