1

プロローグを学んでいます。簡単な事実を書きました。しかし、Prolog は正しい答えをくれていないようです。ここで私が間違っていることを理解するのを手伝ってください。

facts-weather.pl

weather(pheonix,summer,hot).   
weather(pheonix,winter,warm).  
weather(la,summer,warm).

次のようにswi-prologでこれを実行すると

?- weather(City,_,warm).
City = pheonix .

結果は としてのみ表示されpheonixます。しかしla、またwarmです。なぜそれが答えとして与えられないのですか?

4

2 に答える 2

2

答えを非常によく見る必要があります。

City = pheonix .
              ^ SPACE!

回答置換とドットの間にはスペースがあります。この小さなヒントは、次のことを教えてくれます。クエリをもう一度試してください。今度は SPACE を入力するか;、RETURN を入力しないでください。これにより、回答が再び停止します。

于 2015-05-23T19:00:19.313 に答える
1

通常、最初の回答が書き込まれた後、何らかのキー (通常は ";") を入力して、バックトラックして別の回答を受け取ることができます。

于 2015-05-23T19:00:04.950 に答える