質問

この単純なものをエディタにロードしたいと思います。

Write:-repeat,write("hi"),nl,fail.

「こんにちは」と印刷されるようにします。

どうすればいいですか?

私は現在やろうとしています File->New

そして「Write into」という名前のファイルを保存します E:\Program Files\pl\xpce\prolog\lib

クエリを実行するとき:

?-書く。

印刷中です:

1 ?- Write.
% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)

なぜ?

役に立ちましたか?

解決

編集

さらに調べてみました。どうやら、これは、インスタンス化されていない変数について SWI-Prolog に問い合わせたときに実行されることのようです。

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 University of 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.

For help, use ?- help(Topic). or ?- apropos(Word).

?- X.
% ... 1,000,000 ............ 10,000,000 years later
% 
%       >> 42 << (last release gives the question)
?- 

アップデート

名前を小文字に変更すると機能します。変数は大文字です。

helloworld.プロローグ:

helloworld:-write('Hello World!'),nl,fail.

それから:

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.6.64)
Copyright (c) 1990-2008 University of 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.

For help, use ?- help(Topic). or ?- apropos(Word).

?- ['helloworld.prolog'].
% helloworld.prolog compiled 0.00 sec, 1,376 bytes
true.

?- helloworld.
Hello World!
false.

?- 

最初にファイルを参照する必要があることに注意してください。これを試してみましたが、確かに機能します。

他のヒント

あなたは、プロシージャwrite、ないWriteに名前を付ける必要があります。アッパーケース始まる文字は変数のためのものです。あなたがwriteHiか何かのような他の何かそれを呼び出す場合は、組み込みのような手順には同じ名前を持っていませんが、あなたの書き込みが異なるアリティを持っているので、あなたがwriteそれを呼び出すとき、それはまだ動作しますので、(それは、それほど混乱するかもしれません)1に内蔵されています。

より

また、あなたはそれがいずれかのように動作します(ただし、唯一の番目のバージョンは、実際に画面に単語HI出力します - お使いのバージョンでは、整数のリストとしてそれを印刷します)にかかわらず、"hi"'hi'を交換したい場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top