2013-11-23 5 views
1

Можно ли объявить переменную к факту?Пролог объявляет переменную

male(tom). 
male(Tom) := male(tom). 

Так, чтобы была задана переменная капитала Tom. Prolog задает прописные буквы как переменные, и я не понимаю, как заставить его работать так, как это хочет мой профессор.

+0

Ну .... Пролог не Паскаль. ;) Если у вас есть факт 'male (tom).' Asserted, то если вы запросите 'male (Tom) .', тогда вы получите' Tom = tom'. – lurker

ответ

0

Вам не нужно объявлять male(Tom) := male(tom).

Если вы объявили male(tom)., а затем, введя запрос male(Tom)., вы получите

2 ?- male(Tom). 
Tom = tom. 

так же, как @mbratch сказал.

Он работает так же с любым именем для переменной:

3 ?- male(X). 
X = tom. 

4 ?- male(Tommmmm). 
Tommmmm = tom. 

5 ?- male(Name). 
Name = tom. 
Смежные вопросы