我是SWI-Prolog的新手,正在嘗試一些教程。然而,我嘗試通過命令行加載的每個文件都會得到2個錯誤消息 - 一個在開始時(操作員期望)和一個在結尾(文件意外結束)。文件保存在同一目錄中的一個,我在工作。SWI-Prolog文件是否需要開始和結束字符?
例如,我有這個文件保存爲kb2.pl
listensToMusic(mia).
happy(yolanda).
playsAirGuitar(mia) :- listensToMusic(mia).
playsAirGuitar(yolanda) :- listensToMusic(yolanda).
listensToMusic(yolanda):- happy(yolanda).
從打開的Prolog開始(通過/選擇/ local/bin目錄/ swipl),我的命令行看起來是這樣的:
% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 3,928 bytes
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.10.2)
Copyright (c) 1990-2010 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.help, use ?- help(Topic). or ?- apropos(Word).
?- [kb2].
ERROR: /Users/name/Desktop/kb2.pl:1:0: Syntax error: Operator expected
ERROR: /Users/name/Desktop/kb2.pl:10:52: Syntax error: Unexpected end of file
% kb2 compiled 0.00 sec, 2,584 bytes
true.?-
當我問編譯的文件的清單,我得到:
\happy(yolanda).
\playsAirGuitar(mia) :- listensToMusic(mia).
\playsAirGuitar(yolanda) :- listensToMusic(yolanda).
true.
因此它將剪切文件的第一行和最後一行。
我在網上搜索了這些錯誤消息,發現了很多關於Prolog格式化的有用提示,但都沒有解決這種情況。是否有某種特殊字符或格式應該用於Prolog文件的開始和結束?
我重新格式化了上面的文本,並且可以將它複製到SWI Prolog中(使用'with(user)')就好了。 – 2011-02-26 21:36:26
它採用Rich Text Format(我認爲是UTF-16)。我只是將它切換到ASCII,現在它可以工作 - 謝謝!然而,下一次,我將如何發佈整個原始文件?我可以直接上傳堆棧溢出嗎? – Kristen 2011-02-26 22:25:11
@Kristen:RTF(RTF格式)是微軟很早以前就開始的一種文字處理格式。 SWI-Prolog毫無疑問會對包含這些文件文本的額外字體和其他「格式化」命令產生困難。您可以在簡單的文本編輯器中打開RTF文件,併爲自己查看額外的字符。 – hardmath 2011-02-27 16:19:53