このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/839

#  http://ime.nu/www.dotup.org/uploda/www.dotup.org1379819.java.html 
#  Fruitクラス
#  条件 果物クラスの検索()メソッドは、商品が存在するかどうかを検索する
#  メソッドで、商品が存在した場合は単価を戻す。
#  商品が見つからなかった場合には-1を戻す。
#  果物クラスの表示()メソッドは、商品名、単価、個数から合計金額を
#  計算して表示するメソッドである。
#    商品が登録されていない場合はメッセージを表示する。

商品が存在するか存在したら単価を戻す(_果物・単価ならび,_商品,_単価) :-
        商品が存在するか(_果物・単価ならび,_商品),
        存在したら単価を戻す(_果物・単価ならび,_商品,_単価),!.
商品が存在するか存在したら単価を戻す(_果物・単価ならび,_商品,-1).

商品が存在するか(_果物・単価ならび,_商品) :-
        append(_,[[_商品|_]|_],_果物・単価ならび).

存在したら単価を戻す(_果物・単価ならび,_商品,_単価) :-
        append(_,[[_商品,_単価]|_],_果物・単価ならび).

表示(_果物・単価ならび,_商品名,_単価,_個数) :-
        商品が存在するか存在したら単価を戻す(_果物・単価ならび,_商品名,_単価),
        \+(_単価 = (-1)),
        _合計金額 is _単価 * _個数,
        write_formatted('商品合計 = %t\n',[_合計金額]),!.
表示(_果物・単価ならび,_商品名,_単価,_個数) :-
        write_formatted('商品 %t は登録されていません\n',[_商品名]),!.