Составители:
Рубрика:
48
   Последние три объекта предиката president - целые  числа, их доме-
нами являются соответственно birth_year, year_in и year_out.  Объявление  
доменов  в  разделе программы domains выглядит достаточно просто:  
      birth_year,year_in,year_out = integer 
Запятая в этом объявлении служит в качестве разделителя  при перечислении 
имен доменов одного типа. 
   Цель программы на естественном языке можно  сформулировать сле-
дующим образом: "Выдать место
, год рождения, начальный  и конечный год 
пребывания у власти всех президентов-демократов."   Первая  подцель со-
держит свободные переменные Х, S, Yb, Yi и Yo, и значение объекта 
democrat. (Заметим,  что  в  данном примере имена переменных являются 
ключом для понимания смысла  соответствующих  объектов, так, например, 
Yb - это "year of  birth" - год рождения.). Когда  программа  запускается  на 
счет
,  свободным  переменным  присваиваются  соответствующие значения 
из второго  утверждения.  Следующие  пять  подцелей включают  в  себя 
предикаты write для печати этих значений в разных строках экрана. Данную 
программу можно также использовать и при отсутствии внутренней цели, то 
есть когда опущен раздел goal.  
*  Упражнение 
3.3.  Введите  программу "Президенты". Модифицируйте программу 
таким образом, чтобы
 цель  стала внешней, запустите программу на счет и 
задайте вопрос: 
  president(X,republican,S,Yb,Yi,Yo). 
  На  выходе  Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах). 
3.3.  Введите  программу "Президенты. Модифицируйте программу та-
ким образом, чтобы цель  стала внешней, запустите программу на счет и за-
дайте вопрос: 
  president(X,republican,S,Yb,Yi,Yo). 
  На  выходе  Вы должны получить
 информацию о всех оставшихся пре-
зидентах (республиканцах). 
3.3.3 Использование правил в запросах 
  В предыдущих  примерах программ  вы использовали  целевые  утвер-
ждения,  содержащие утверждения, подобные тем, что встречались в про-
грамме. Такие целевые утверждения обеспечивают одну из возможностей 
осуществления запросов к  программе. 
  Запросы  строятся  из  предикатов,  содержащих условия, которые   ог-
раничивают  пути  поиска  желаемых  результатов, причем, в случае, когда 
какой-либо  запрос  нужно
  повторить несколько раз, разумно предусмотреть 
возможность не задавать всякий  раз  одни  и те же условия, что утомительно. 
Полезно также  для получения ответов из базы данных, не использовать фак-
тов из базы данных. 
       Последние три объекта предиката president - целые числа, их доме-
нами являются соответственно birth_year, year_in и year_out. Объявление
доменов в разделе программы domains выглядит достаточно просто:
         birth_year,year_in,year_out = integer
Запятая в этом объявлении служит в качестве разделителя при перечислении
имен доменов одного типа.
       Цель программы на естественном языке можно сформулировать сле-
дующим образом: "Выдать место, год рождения, начальный и конечный год
пребывания у власти всех президентов-демократов." Первая подцель со-
держит свободные переменные Х, S, Yb, Yi и Yo, и значение объекта
democrat. (Заметим, что в данном примере имена переменных являются
ключом для понимания смысла соответствующих объектов, так, например,
Yb - это "year of birth" - год рождения.). Когда программа запускается на
счет, свободным переменным присваиваются соответствующие значения
из второго утверждения. Следующие пять подцелей включают в себя
предикаты write для печати этих значений в разных строках экрана. Данную
программу можно также использовать и при отсутствии внутренней цели, то
есть когда опущен раздел goal.
*     Упражнение
      3.3. Введите программу "Президенты". Модифицируйте программу
таким образом, чтобы цель стала внешней, запустите программу на счет и
задайте вопрос:
      president(X,republican,S,Yb,Yi,Yo).
      На выходе Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах).
      3.3. Введите программу "Президенты. Модифицируйте программу та-
ким образом, чтобы цель стала внешней, запустите программу на счет и за-
дайте вопрос:
            president(X,republican,S,Yb,Yi,Yo).
      На выходе Вы должны получить информацию о всех оставшихся пре-
зидентах (республиканцах).
     3.3.3 Использование правил в запросах
      В предыдущих примерах программ вы использовали целевые утвер-
ждения, содержащие утверждения, подобные тем, что встречались в про-
грамме. Такие целевые утверждения обеспечивают одну из возможностей
осуществления запросов к программе.
      Запросы строятся из предикатов, содержащих условия, которые ог-
раничивают пути поиска желаемых результатов, причем, в случае, когда
какой-либо запрос нужно повторить несколько раз, разумно предусмотреть
возможность не задавать всякий раз одни и те же условия, что утомительно.
Полезно также для получения ответов из базы данных, не использовать фак-
тов из базы данных.
                                                                       48
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
