このディレクトリの索引
#  例題の1つに、すべての製品を注文したすべての顧客の平均の売掛残高、および
#  すべての製品を注文していない顧客の平均の売掛残高を求めるといったものがありました。
%  単位節データベースを抽象するならば、

すべての製品を注文したすべての顧客の平均の売掛残高を求める(_すべての製品を注文したすべての顧客の平均の売掛残高) :-
        findavg(_売掛残高,(
                    すべての製品を注文した顧客の売掛残高(_売掛残高)),
                _すべての製品を注文したすべての顧客の平均の売掛残高).

すべての製品を注文した顧客の売掛残高(_売掛残高) :-
        すべての製品を注文した顧客(_顧客),
        売掛残高(_顧客,_売掛残高).

すべての製品を注文した顧客(_顧客) :-
        顧客(_顧客),
        forall(商品(_商品),注文(_顧客,_商品)).

findavg(_選択,_目標,_平均値) :-
        findall(_選択,_目標,L),
        sum_list(L,_合計),
        length(L,_標本数),
        _平均値 is _合計 / _標本数.