2016-03-20 3 views

ответ

2

Ответ, который вы получили, следующий. Вы заметили пространство перед точкой?

Who = ann . 
     ^SPACE!!! 

Это пространство означает: запрос был прерван. Возможно, вы набрали возврат. Или, может быть, у вас есть несколько плохо сконфигурированный терминал.

Чтобы лучше проверить это, попробуйте:

?- X = 1 ; X = 2 ; X = 3. 

Там вы должны получить все три ответа, тоже. Если нет, это определенно ваш терминал

0

Что вы видите, это поведение пролога по умолчанию.

Запрос

?- findall(Object,Goal,List). 

Должно работать для вас.

Например.

findall(X, human(X), L). 

Он заполнит список всеми возможными ответами.

+0

Это немного странно. Я наблюдал за несколькими учебниками, и они, кажется, вернули список ответов только с помощью «human (Who)». –

+1

Это отличный веб-сайт: http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn- htmlse49 –