2013-05-02 2 views
0

Прежде всего, это вопрос домашней работы, поэтому, пожалуйста, просто дайте мне подсказку!SICStus Prolog product product/3 правило из суммы/3

%Here is a rule that defines sum/3 that returns yes if Z is sum of X and Y 
sum(X,Y,Z) :- 
    Z is X + Y. 
%How can I make product/3 
product(X,Y,Z) :- % based on sum/3 above? 

Кроме того, как написать запрос на продукт, чтобы он возвращал ответ X * Y, а не то, что это просто правда?

ответ

2

Считают, что в математике:

x * 0 = 0 
x * y = x + x * (y - 1) 

Это должно помочь вам написать свои правила.

Что касается запроса, вы можете использовать что-то вроде этого, чтобы получить результат, как эти:

?- product(5, 3, Result). 
Result = 15 ? 
yes 

Короче говоря, если у вас есть несвязанные переменные в запросе, он пытается найти значение для этого переменная такая, что предикат завершается успешно.

+0

какой лучший способ дать подсказку, но не ответ! спасибо –

+0

эй у меня вопрос о правопреемнике. Это не предопределенная функция в SICStus? Как вы определяете s (X) в прологе? –

+0

@HwaSooCho: Извините; В частности, у меня нет опыта в SICStus; просто Пролог вообще. Вероятно, вам удастся начать новый вопрос. – icktoofay

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