Я использую древний турбо-пролог. и постоянно сталкивается с ошибкой в следующем коде:- неправильное написание или не объявленный предикат
domains
A,B,C = symbol
N,P = integer
predicates
tower(integer,symbol,symbol,symbol,integer)
go
clauses
go :- clearwindow,
write("enter value of N (For Transfering from A To B)"),
readint(N),
tower(N,'a','b','c',N).
tower(N,A,B,C,P):-
N > 1,
P is N-1
tower(P,A,C,B,P),
write([move , A,B]),nl,
tower(P,C,B,A,P).
tower(0,_,_,_):- !.
3 ответа
Кроме того, объявления вашего домена не имеют смысла. Синтаксис не для связывания переменных с доменами (символ и целое число предопределены для вас), а скорее для создания специализированных доменов из предопределенных. Похоже, что вашей программе не нужны какие-либо объявления домена.
Из-за того, что прошло много времени, в Turbo Prolog обучающие материалы по доменам и т. Д. В Интернете довольно редки, поэтому лучше всего (если вам не хватает оригинальной документации) стоит обратиться к одному из учебных пособий по Visual Prolog.