ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »