ВУЗ:
Составители:
Рубрика:
23
имеет значение Kiev, то содержимое соответствующего счетчика
увеличиваем на единицу. Для других городов – аналогично. Программа на
языке CLIPS, реализующая указанный алгоритм, может быть, например,
такой:
(defglobal ?*odessa* = 0)
(defglobal ?*kiev* = 0)
(defglobal ?*lvov* = 0)
(defrule start
(initial-fact)
=>
(printout t crlf «REPRESENTATIVES» crlf)
(defrule odessa
(rep ? Odessa)
=>
(bind ?*odessa* (+ ?*odessa* 1)))
(defrule kiev
(rep ? Kiev)
=>
(bind ?*kiev* (+ ?*kiev* 1)))
(defrule lvov
(rep ? Lvov)
=>
(bind ?*lvov* (+ ?*lvov* 1)))
(defrule result
(declare (salience -1))
(initial-fact)
=>
(printout t «from Odessa: « ?*odessa* crlf)
(printout t «from Kiev: « ?*kiev* crlf)
(printout t «from Lvov: « ?*lvov* crlf))
В первых трех строках программы при помощи конструктора defglobal
объявляются три глобальные переменные: ?*odessa*, ?*kiev* и ?*lvov*. Эти
переменные являются счетчиками. В CLIPS переменная может быть и
локальной – но тогда она связывается только с тем правилом, в котором
объявляется.
Далее следует правило с именем start, левая часть которого
представляет собой запись (initial-fact). Так обозначается системный
начальный факт, который создается в рабочей памяти интерпретатора CLIPS
имеет значение Kiev, то содержимое соответствующего счетчика
увеличиваем на единицу. Для других городов – аналогично. Программа на
языке CLIPS, реализующая указанный алгоритм, может быть, например,
такой:
(defglobal ?*odessa* = 0)
(defglobal ?*kiev* = 0)
(defglobal ?*lvov* = 0)
(defrule start
(initial-fact)
=>
(printout t crlf «REPRESENTATIVES» crlf)
(defrule odessa
(rep ? Odessa)
=>
(bind ?*odessa* (+ ?*odessa* 1)))
(defrule kiev
(rep ? Kiev)
=>
(bind ?*kiev* (+ ?*kiev* 1)))
(defrule lvov
(rep ? Lvov)
=>
(bind ?*lvov* (+ ?*lvov* 1)))
(defrule result
(declare (salience -1))
(initial-fact)
=>
(printout t «from Odessa: « ?*odessa* crlf)
(printout t «from Kiev: « ?*kiev* crlf)
(printout t «from Lvov: « ?*lvov* crlf))
В первых трех строках программы при помощи конструктора defglobal
объявляются три глобальные переменные: ?*odessa*, ?*kiev* и ?*lvov*. Эти
переменные являются счетчиками. В CLIPS переменная может быть и
локальной – но тогда она связывается только с тем правилом, в котором
объявляется.
Далее следует правило с именем start, левая часть которого
представляет собой запись (initial-fact). Так обозначается системный
начальный факт, который создается в рабочей памяти интерпретатора CLIPS
23
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »
