2015-12-25 5 views
7

Я новичок в Prolog. Я просто пытаюсь найти простые примеры. У меня есть этот .pl файл с этими линиями:Почему SWI-Prolog дает мне первый ответ?

parent(pam,bob). 
parent(tom,bob). 
parent(tom,lio). 
parent(bob,ann). 
parent(bob,pat). 
parent(pat,jim). 

После консультаций и тестирования, он показывает только первый ответ. Например:

5 ?- parent(X,Y). 
X = pam, 
Y = bob . 

Разве не должен давать все комбинации, которые удовлетворяют соотношению parent?

У кого-нибудь есть идея, в чем проблема?

+1

не нажимайте enter после того, как ваши первые результаты показывают, вместо этого используйте пробел –

+0

. Спасибо за помощь. –

+1

Я добавил это как ответ, так как у меня такое чувство, что вы не единственный, кто работает в этом. –

ответ

8

не попали ввести после того, как ваши первые результаты шоу, используйте пробел вместо

  • [Enter] останавливает выполнение, даже если откат еще не завершен
  • [Spacebar] или [;] продолжается с возвратом от последнего результата к следующий результат или false, если других результатов не осталось.
+1

Можете ли вы объяснить, какая разница между пространством и входом делает для будущих читателей? –

+0

Я думал, что это уже ясно, но если нет, я надеюсь, что это будет сделано. Благодарю. –

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