/* ********************************************************************** * * CLP(R) Version 2.0 (Example Programs Release) * (C) Copyright, March 1986, Monash University * ********************************************************************** */ % % Calculate compound interest. % Arguments are Principal, Time (months), Interest (fraction), Balance, % and Monthly Payment. % % The goals ?- go1 demonstrates % obtaining ground answers for two different combinations of inputs. % The goals ?- go2 and ?- go3 deal with getting linear % equations as answers, while ?- go4 produces a % polynomial equation. % mg(P,T,I,B,MP):- T > 0, T <= 1, B + MP = P * (1 + I). mg(P,T,I,B,MP):- T > 1, mg(P * (1 + I) - MP, T - 1, I, B, MP). go1:- mg(120000,120,0.01,0,MP), printf("Forward: MP = %g\n",[MP]), mg(P,120,0.01,0,MP), printf("Backward: P = %g\n",[P]). % Answer: % Forward: MP = 1721.651381 % Backward: P = 120000 go2:- mg(P,120,0.01,0,MP), dump([P,MP]). % Answer: % 2 ?- go2. % P = 69.700522*MP go3:- mg(P,120,0.01,B,MP), dump([P,B,MP]). % Answer: % 3 ?- go3. % P = 0.302995*B + 69.700522*MP go4:- mg(999, 3, Int, 0, 400), dump. % Answer: % 400 = (-400 + (599 + 999*Int) * (1 + Int)) * (1 + Int) ?- printf("\n>>> Sample goals: go1/0, go2/0, go3/0, go4/0\n", []).