People, how do I display the recommended application. Example: 'You should apply in saving'. The swi-prolog returns singleton variables and arguments are not sufficiently instantiated. I'm having a great difficulty in this exercise.
% metapredicate
:-dynamic idadeMaior50/1.
:-dynamic idadeMenor30/1.
:-dynamic casado/1.
:-dynamic filhos/1.
:-dynamic renda10k/1.
:-retractall(idadeMaior50(I)).
:-retractall(idadeMenor30(Y)).
:-retractall(casado(C)).
:-retractall(filhos(F)).
:-retractall(renda(R)).
form:-
write('Sua idade eh maior que 50? [s/n]'),
read(I), asserta(idadeMaior50(I)),
write('Sua idade eh menor que 30? [s/n]'),
read(Y), asserta(idadeMenor30(Y)),
write('Casado?' [s/n]),
read(C), asserta(casado(C)),
write('Filhos? [s/n]'),
read(F), asserta(filhos(F)),
write('Renda maior que R$10.000? [s/n]'),
read(R), assert(renda10k(R)).
%perfil cliente
Co:-idadeMaior50(sim); (idadeMenor30(nao), casado(sim), filhos(sim)), !.
Ar:- (idadeMenor30(sim);idadeMaior50(nao)), casado(nao), filhos(nao),!.
Mo:- (idadeMenor30(sim); idadeMaior50(sim)), fail.
Mo:- idadeMenor30(sim),casado(sim),filhos(sim).
Mo:- idadeMaior50(sim),casado(nao),filhos(nao).
%recomendacao
poup :- Co.
poup :- Mo,renda10k(nao),filhos(sim).
Mx :- Co,renda10k(sim).
Mx :- Ar,renda10k(nao).
Mx :- Mo.
Ac :- Ar.
Ac :- Mo,(renda10k(sim);filhos(nao)).