1

私はSWI-Prologを初めて使用し、いくつかのチュートリアルを試しています。ただし、コマンドラインからロードしようとするすべてのファイルには、2つのエラーメッセージが表示されます。1つは開始時(オペレーターが予期)、もう1つは終了時(予期しないファイルの終わり)です。ファイルは、私が作業しているディレクトリと同じディレクトリに保存されます。

たとえば、このファイルをkb2.plとして保存しています。

listensToMusic(mia).  
happy(yolanda).   
playsAirGuitar(mia) :- listensToMusic(mia).   
playsAirGuitar(yolanda) :- listensToMusic(yolanda).
listensToMusic(yolanda):- happy(yolanda).  

Prologを開いてから(/ opt / local / bin / swiplを介して)、私のコマンドラインは次のようになります。

%library(swi_hooks)をpce_swi_hooksにコンパイル0.00秒、3,928バイト
SWI-Prologへようこそ(マルチスレッド、64ビット、バージョン5.10.2)
Copyright(c)1990-2010アムステルダム大学、VUアムステルダム
SWI-Prologには絶対に付属しています無保証。これは無料のソフトウェアで
あり、特定の条件下で再配布することを歓迎します。詳細については、 http://www.swi-prolog.org
を ご覧ください。

ヘルプ、?-help(トピック)を使用します。または?-apropos(Word)。

?-[kb2]。
エラー:/Users/name/Desktop/kb2.pl:1:0:構文エラー:オペレーターが予期
しましたエラー:/Users/name/Desktop/kb2.pl:10:52:構文エラー:予期しないファイルの終わり
%kb2コンパイル済み0.00秒、2,584バイト
true。

?-

コンパイルされたファイルのリストを要求すると、次のようになります。

\ happy(yolanda)。
\ playingAirGuitar(mia):-listensToMusic(mia)。
\ playingAirGuitar(yolanda):-listensToMusic(yolanda)。
本当。

つまり、ファイルの最初と最後の行を切り取っています。

私はこれらのエラーメッセージをオンラインで検索し、Prologのフォーマットに関する多くの有用なヒントを見つけましたが、この状況に対処するものはありません。Prologのファイルの開始と終了に使用する必要がある特殊文字またはフォーマットはありますか?

4

2 に答える 2

1

どのオペレーティングシステムを使用していますか?ファイルがASCII(UTF-16ではない)であることを確認しますか?プラットフォームのネイティブラインの終わりはありますか?人々がそれをチェックできるように、ファイル全体(生)を投稿できますか?

于 2011-02-26T21:34:33.763 に答える
0

SWI-Prolog、Jekejeke Prologなどの多くのPrologシステムでは、BOMをテキストファイルの最初の文字として検出できます。BOMは空白であり、テキストファイルのエンコードを示します。

254 255          UTF-16BE
255 254          UTF-16LE
239 187 191      UTF-8

したがって、ASCIIに制限する必要はありません。多くのテキストエディタがBOMを配置します。そして、SWI-Prolog、Jekejeke Prologは、デフォルトでBOMをプローブします。

于 2017-08-22T16:25:39.853 に答える