2013-05-30 4 views
0

Я новичок в прологе и пробовал очень простой пример на http://www.compileonline.com/execute_prolog_online.php. Вот мой код:Что не так в следующем фрагменте кода в прологе?

:- initialization(main). 
main :- 

female(ayse). 
?- female(ayse). 

Но это дает ошибку о том, что:

/web/com/136989421322328/main.pr:5:4: syntax error: . or operator expected after expression 
1 error(s) 
compilation failed 

где линия 5 является строка начинается с?. Что здесь не так? Может ли кто-нибудь помочь?

Спасибо.

+0

'? -' не является оператором Пролог. –

+0

@larsmans в моих заметках говорит, что запросы в прологе префиксны? - так как я могу сделать такой запрос? – yrazlik

+0

'? -' - приглашение интерактивного интерпретатора. Используйте ': -' и предикат вывода, такие как' write' (см. Ответ), если вы не находитесь в интерактивном сеансе. –

ответ

2

Этот код работает:

:- initialization(hello). 
hello :- write('hello'). 

линии:

  1. вы говорите, что вы хотите иметь предикат, называемый привет, который будет указан в следующих строках, что оболочка быть выполнены, когда все загружается ,

  2. Вы объявляете предикат.

    "привет подразумевает запись ('привет') является истинным"

То, что вы хотели написать это

:- initialization(main). 
female(ayse). 

main :- female(ayse), write('ayse is female'). 
+0

Спасибо за ответ – yrazlik

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