% Sample Prolog program (SWI-Prolog) — samplefiles.com
customer(1, 'Ada', 12500.0).
customer(2, 'Grace', 830.5).
customer(3, 'Linus', 10000.0).

vip(Id) :- customer(Id, _, Balance), Balance >= 10000.

total_balance(Total) :-
    findall(B, customer(_, _, B), Bs),
    sum_list(Bs, Total).

main :-
    forall(customer(Id, Name, Balance),
           (   ( vip(Id) -> Tag = 'VIP' ; Tag = '' ),
               format("~w~t~6| ~t~2f~17| ~w~n", [Name, Balance, Tag])
           )),
    total_balance(Total),
    format("Total: ~2f~n", [Total]).

:- initialization(main, main).
