Правила Пролога отражают структуру

Мне нужно разработать правила, которые проверяют, является ли кредит автокредитом или нет.

carLoan(flexiCar,minLoanAmount(20000),maxTenure(12) ).
iscarloan(X, Y, Z) :- carLoan(X, Y >= minLoanAmount(20000), Z =<(maxTenure(12)) ).
iscarloan(X, 25000, 10).

Мне нужно проверить переменные Y и Z на соответствие структуре факту внутри правила.

Как этого добиться?

Спасибо.


person nicholas    schedule 19.07.2010    source источник


Ответы (2)


iscarloan(X, Y, Z) :-
  carLoan(X, minLoanAmount(MinLoan), maxTenure(MaxTenure)),
  Y >= MinLoan,
  Z =< MaxTenure.

Это то, что вы имели в виду?

person Little Bobby Tables    schedule 19.07.2010
comment
Я проверил правила, используя некоторые запросы, и они показывают ошибку, указывающую на то, что minLoanAmount не является функцией. - person nicholas; 19.07.2010
comment
Сообщение об ошибке: ERROR: ›= /2 Арифметическое значение minLoanAmount не является функцией - person nicholas; 19.07.2010
comment
Мое плохое - я исправил совпадение во 2-й строке - person Little Bobby Tables; 19.07.2010

person    schedule
comment
Я получил ответы следующим образом. является гарантом(X,Y):- гарантом(X,Y), а не заказчиком(X). iscarloan(LoanType, Y, Z):- carLoan(LoanType, minLoanAmount(MLA), maxTenure(MT)), Y ›= MLA, Z =‹ MT. - person nicholas; 19.07.2010