Readchar(_)
Якщо ви попередньо наберете програму і наповните базу, тоді для запуску програми ви можете використати предикат run.
run:-
animal_is(X),!,
write("\nYour animal may be a(an)", X),
Nl,nl, clear_facts.
run:- write("\nUnable to determine what"),
write("your animal is.\n\n"),
Clear_facts.
9.2. Макетування: задача маршрутизації.
Ця програма ілюструє особливості Прологу, які роблять його корисним при вирішенні задач макетування. Припустимо , ми хочемо створити систему, яка б допомогала вибрати маршрут при поїздці із одного міста в інше.
Початкову програму будемо використовувати для подальшого аналізу вирішення поставленої задачі.
Нас будуть цікавити питання типу:
* Чи існує пряма дорога з одного міста в інше?
* Які з міст знаходяться на віддалі меншій 10 км від конкретного міста?
Нехай ми будемо реалізовувати карту прототипу, зображену на мал.9.1.
KansasCity
O---------------
Gordon
O--------- O Houston --------O Tampa
Мал.9.1. Карта прототипу.
Наступна програма є класичним прикладом використання бектрекінгу і рекурсії для вирішення задачі планування маршруту.