2013-11-16 6 views
-5

если цель может (5,3) из положить может быть 5,4,3 это мой код нашел большую ошибкуПролог: как я могу подсчитать число в прологе?

predicates 
    count(integer, integer) 
clauses 
    count(X, Y) :- X > Y, write(3), !. 
    count(X < Y) :- X > Y, write(X), nl, X1 = X-1, count(X1, Y). 
+0

Какова была ошибка, а именно? –

+0

Пожалуйста, объясните, что должен делать этот предикат в целом, а не только конкретный пример без контекста. –

+0

Я не знаю, какое условие для печати от 5 до 3 или от -3 до 0 и т. Д. – eleen

ответ

2
count(X,X):-write(X),nl. 
count(X,Y):-X<Y,write(X),nl,X1 is X+1,count(X1,Y). 
+1

Вы не можете выполнить арифметическое присвоение с помощью '='. Вам нужно использовать 'is'. Таким образом, вышесказанное не будет работать. – lurker

Смежные вопросы