我只是不知道如何打印X
的值。以下是我在頂層嘗試:prolog - 打印一個變量的值
59 ?- read(X).
|: 2.
X = 2.
60 ?- write(X).
_G253
true.
什麼是_G253
?我不想要索引號,我想要X值綁定。 我應該怎麼做才能打印X
的值?
我只是不知道如何打印X
的值。以下是我在頂層嘗試:prolog - 打印一個變量的值
59 ?- read(X).
|: 2.
X = 2.
60 ?- write(X).
_G253
true.
什麼是_G253
?我不想要索引號,我想要X值綁定。 我應該怎麼做才能打印X
的值?
當您在交互式提示符下鍵入write(X).
,而沒有別的時候,X沒有被綁定到任何特別的東西。如果您想從用戶那裏讀取X並寫入,請嘗試在提示符處輸入read(X), write(X).
。
?- read(X), write(X).
|: 28.
28
X = 28.
SWI Prolog確實保留了頂級綁定的歷史;鍵入help.
以進入手冊,然後搜索bindings
或只是導航到手冊「重新使用頂級綁定」的第2.8節。在那裏,您可以瞭解到成功的頂級目標中綁定的任何變量的最新值將保留,並且可以使用以美元符號爲前綴的變量名稱進行引用。因此,像下面的相互作用是可能的:
?- read(X).
|: 42.
X = 42.
?- write($X).
42
true.
但是,這恰好使用的變量名X將被解釋爲使用新的變量頂層目標;否則會違反Prolog的正常語義。
prolog - 作爲輸入並打印變量的值。
go:- write('Enter a name'),nl,
read(Name),nl,
print(Name).
print(Name):- write(Name),write(', Hello !!!').
的[在SWI Prolog的變量名]
可能重複(http://stackoverflow.com/questions/9358623/variable-names-in-swi-prolog) – false