Я определил правило с помощью оператора или, но он возвращает несколько значений true или false.
isloanaccept(Name,Guarantor,LoanType,LoanAmount,LoanTenure)
:- customer(Name,bank(_),customertype(_),
citizen(Ci),age(Age),credit(C),
income(I),property(_),bankemployee(_)),
Ci == 'malaysian',
Age >= 18,
C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name),
ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenure).
На самом деле мне нужно проверить, соответствует ли тип кредита конкретному требованию по кредиту, и объединить с общим правилом.
Другими словами, мне нужно определить вышеприведенное правило следующим образом.
Ci == 'malaysian', Age >= 18,C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name)
Or with (ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenur)
В командной строке должно возвращаться 1 истина / ложь, а не несколько операторов.
Каждое из или правило возвращает 1 логическое значение, которое я не хочу после того, как проверил правило в командной строке. Мне нужно, чтобы это было так (общее правило & (множественное или правило)).
Как объединить несколько или правило, которое возвращает 1 логическое значение?
Пожалуйста, помогите.
Спасибо.