Пролог - Объявление арифметических предложений

Простой вопрос: как мне объявить предложение, которое даст указанное число +1 +2 и +3? Я пытался:

addup(Thenumber,Thenumber+1).
addup(Thenumber,Thenumber+2).
addup(Thenumber,Thenumber+3).

но когда я запускаю его, скажем, Thenumber = 5, он просто возвращает 5 + 1 5 + 2 5 + 3. Я пробовал использовать «есть», чтобы заставить его оценить, но, похоже, это не сработало. Любая помощь будет оценена.


person Dororo    schedule 04.03.2010    source источник


Ответы (1)


Попробуй это:

addup(X, Y) :- Y is X + 1.

or

addup(X, X+1).

и ваш вопрос должен быть addup (2, X)

тогда X должно быть 3. Если вы хотите параметризовать свой параметр addup, просто сделайте это:

addup(X, Y, X + Y).

и спросите с помощью addup (5, 6, X).

person anthares    schedule 04.03.2010