Определение 6.20. Синтаксис условного элемента not

<условный-элемент-not>::= (not <условный-элемент>)

Условный элемент not может отрицать только одно выражение. Несколько условных элементов нужно отрицать с помощью нескольких элементов not. Тщательно следите за комбинациями not с or или and; результат не всегда очевиден!

Пример 6.30. Применение условного элемента not

(defrule high-flow-rate

(temp high)

(valve open)

(not (error-status confirmed))

=>

(printout t "Recommend closing of valve due to high temp" crlf))

В логическом элементе not можно использовать связанные переменные, так же как и в других условных элементах:

Пример 6.31. Правило check-value

(defrule check-valve

(check-status?valve)

(not (valve-broken?valve))

=>

(printout t "Device "?valve " is OK" crlf))

С помощью условного элемента not можно, наконец, довести до совершен­ства наше правило Find-2-coeval-Person, последняя версия которого была приведена в разд. 6.5.1. Если вы помните, это правило выводит всевозмож­ные пары персон одинакового возраста. Чтобы данное правило не выводило эквивалентные по смыслу пары имен (например, Bob-Sue и Sue-Bob), преоб­разуем нашу программу следующим образом:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: