このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1258158172/966
#  下のように支払い金額の計算書を出力するように下のプログラムを修正してください。 
#  menu0 650 1 650 
#  menu1 680 2 1360 
#  menu2 720 3 2160 
#  menu3 840 2 1680 
#  menu4 920 1 920 
#  menu5 980 0 0 
#  menu6 1080 0 0 
#  menu7 1280 1 1280 
#  goukei  10 6370 
#   
# メニュー番号を10回打ち込んでメニューそれぞれの個数と合計を出力する感じです。

単価表(menu0,650).
単価表(menu1,680).
単価表(menu2,720).
単価表(menu3,840).
単価表(menu4,920).
単価表(menu5,980).
単価表(menu6,1080).
単価表(menu7,1280).

支払い金額の計算書を出力する :-
    length(L,10),
    メニュー番号と数量を10回打ち込む(L),
    支払い金額の計算書を出力する(L).

支払い金額の計算書を出力する(L) :-
    単価表(Menu,_単価),
    findsum(_数量,member([Menu,_数量],L),_合計数量),
    _合計金額 is _合計数量 * _単価,
    write_formatted('%t %t %t %t\n',[Menu,_単価,_合計数量,_合計金額]),
    fail.
支払い金額の計算書を出力する(L) :-
    findsum([_数量,_金額],(単価表(Menu,_単価),member([Menu,_数量],L),_金額 is _数量 * _単価),[_合計数量,_合計金額]),
    write_formatted('gokei %5s %t %t\n',[Menu,' ',_合計数量,_合計金額]).

メニュー番号と数量を10回打ち込む([]).
メニュー番号と数量を10回打ち込む([L1|R]) :-
    get_split_line([' ',','],L1),
    メニュー番号と数量を10回打ち込む(R).