Составители:
Рубрика:
73
для перечисления названий городов. Подправило cities(City) означивает пе-
ременную City (город) названием города. Затем это значение выдается на
экран. Предикат fail вызывает откат к следующему утверждению, которое
может обеспечить вычисление цели.
Листинг 4.1
__________________________________________________________
/* Программа: Города */
/* Назначение: Демонстрация использования */
/* предиката fail и метода ОПН */
domains
name=symbol
predicates
cities(name)
show_cities
goal
write("Here are the cities:"),nl
show_cities
clauses
cities("ANN ARBOR ").
cities("ATLANTA").
cities("NEW HAVEN").
cities("INDIANAPOLIS").
cities("BOSTON").
cities("MESA").
cities("MINEAPOLIS").
cities("SAN ANTONIO").
cities("SAN DIEGO").
cities("TAMPA").
show_cities :-
cities(City),
write(" ", City), nl,
fail.
_____________________________________________________
Из листинга 4.1 видим, что имеется 10 предикатов, каждый из которых
является альтернативным утверждением для предиката cities(name). Во
время попытки вычислить цель, внутренние унификационные подпрограммы
означивают переменную City объектом первого утверждения, который есть
ANN ARBOR (название города в США). Так как существует следующее ут-
верждение
, которое может обеспечить вычисление подцели cities(сity), то
для перечисления названий городов. Подправило cities(City) означивает пе-
ременную City (город) названием города. Затем это значение выдается на
экран. Предикат fail вызывает откат к следующему утверждению, которое
может обеспечить вычисление цели.
Листинг 4.1
__________________________________________________________
/* Программа: Города */
/* Назначение: Демонстрация использования */
/* предиката fail и метода ОПН */
domains
name=symbol
predicates
cities(name)
show_cities
goal
write("Here are the cities:"),nl
show_cities
clauses
cities("ANN ARBOR ").
cities("ATLANTA").
cities("NEW HAVEN").
cities("INDIANAPOLIS").
cities("BOSTON").
cities("MESA").
cities("MINEAPOLIS").
cities("SAN ANTONIO").
cities("SAN DIEGO").
cities("TAMPA").
show_cities :-
cities(City),
write(" ", City), nl,
fail.
_____________________________________________________
Из листинга 4.1 видим, что имеется 10 предикатов, каждый из которых
является альтернативным утверждением для предиката cities(name). Во
время попытки вычислить цель, внутренние унификационные подпрограммы
означивают переменную City объектом первого утверждения, который есть
ANN ARBOR (название города в США). Так как существует следующее ут-
верждение, которое может обеспечить вычисление подцели cities(сity), то
73
Страницы
- « первая
- ‹ предыдущая
- …
- 71
- 72
- 73
- 74
- 75
- …
- следующая ›
- последняя »
