Язык логического программирования ПРОЛОГ. Бураков М.В. - 21 стр.

UptoLike

Составители: 

19
Решение задачи требует 2
n
-1 действий. Если считать, что одно дей-
ствие выполняется за 1 с, то уже для 40 колец должно потребоваться
более 2000000 лет, что звучит достаточно оптимистически.
Программа 12 решает задачу «Ханойская башня» на ПРОЛОГе.
Программа 12
DOMAINS
loc =right;middle;left
PREDICATES
hanoi(integer)
move(integer,loc,loc,loc)
inform(loc,loc)
GOAL
hanoi(5).
CLAUSES
hanoi(N):- move(N,left,middle,right).
move(1,A,_,C):- inform(A,C),!.
move(N,A,B,C):- N1=N-1, move(N1,A,C,B), inform(A,C),
move(N1,B,A,C).
inform(Loc1, Loc2):- nl,write(“Диск с”, Loc1, “ на “, Loc2).
7. ИСПОЛЬЗОВАНИЕ СПИСКОВ
Списки – одна из наиболее часто употребляемых структур в ПРО-
ЛОГе. Список – это набор объектов одного и того же типа. При записи
список заключают в квадратные скобки, а элементы списка разделяют
запятыми, например:
[1,2,3]
[1.1,1.2,3.6]
[“вчера”,”сегодня”,”завтра”]
Элементами списка могут быть любые термы ПРОЛОГа, т.е. атомы,
числа, переменные и составные термы.
Каждый непустой список может быть разделен на голову – первый
элемент списка и хвост – остальные элементы списка. Это позволяет
всякий список представить в виде бинарного дерева (рис. 2).
У списка, состоящего только из одного элемента, головой является
этот элемент, а хвостом – пустой список.
Для использования списка необходимо описать предикат списка.