有一些代碼如下如何使Prolog編程中的列表變量成爲全局變量?
diagnosis :-
readln(Line1),
readln(Line2),
readln(Line3),
readln(Line4),
readln(Line5),
readln(Line6),
readln(Line7),
readln(Line8),
readln(Line9),
readln(Line10),
write(Line1),nl,
write(Line2),nl,
write(Line3),nl,
write(Line4),nl,
write(Line5),nl,
write(Line6),nl,
write(Line7),nl,
write(Line8),nl,
write(Line9),nl,
write(Line10),nl.
在這裏,我得到了10行作爲列表變量(線1,... Line10)。問題是我如何使這些變量成爲全局變量,以便我可以使用它的其他謂詞...我使用了類似b_setvalue或b_getvalue ..但錯誤發生的消息,'期望原子bla bla'..
您不能在Prolog中使變量全局。看到我在這裏提供給你以前的帖子的答案:http://stackoverflow.com/questions/20517560/i-cant-understand-the-result-of-my-code-in-prolog-programming/20518974#20518974。你的「預期原子囉嗦......」的錯誤與不同的事情有關。 – lurker
如果您收到錯誤消息,請仔細閱讀,然後嘗試弄清楚它的含義(請閱讀文檔或谷歌搜索文檔),然後,如果這不能解決您的問題,請尋求幫助,**包括相關信息**,例如您得到的確切錯誤信息,以及沒有解決的問題。還有一點是對那些願意幫助的人缺乏尊重。 – 2013-12-11 12:55:04
@mbratch嚴格地說,有辦法可以使「全局」變量,但很少需要。在OP的例子中,絕對不是。 – 2013-12-11 12:58:49