КЛИПЫ проверяют границы значения (чтения) - PullRequest
0 голосов
/ 29 декабря 2018

Я нахожусь в процессе разработки экспертной системы из дерева решений, и одним из тестов является проверка оценки дикой природы.Пользователю предлагается ввести оценку дикой природы, и будут определены 3 возможных результата.

Оценка не менее 20 отклоняет предложение и завершает программу.

Оценка более 10, но менее 20 переходит к тесту 4, но утверждает, что результат будет вторым лучшим.

Оценка не более 10 просто переходит к тесту 4.

Строка чтения из предыдущего теста:

(defrule wildlife-score(or(energy-level 2)(energy-level 3))
=> (printout t "What is the wildlife impact score?" crlf)
(assert(wildlife-impact(read))))

Вот где я имеюпроблема в сравнении значения чтения со значениями результата.Любая помощь будет оценена.

(defrule reject-wildlife
(wildlife-impact  ? (> ?wildlife-impact 20))
=> (assert(reject))
(printout t "Reject - completely unsuitable due to wildlife impact." crlf))

1 Ответ

0 голосов
/ 30 декабря 2018

Правильный синтаксис для сравнения: (wildlife-impact ?varname&:(> ?varname 20)).

 (defrule reject-wildlife 
  (wildlife-impact ?score&:(> ?score 20)) 
 =>  
  (assert (reject)) 
  (printout t "Reject - completely unsuitable due to wildlife impact." crlf))
...