2012-04-06 16 views
2

Prologデータベースを照会するときに、大文字で始まる用語を変数として使用することがよくあります。ただし、クエリの制約の1つは、人の場所が「Dallas」で、その仕様を満たすデータベース内のすべての情報を照会する必要があるということです。 Dallasが値を格納するための変数として解釈されず、代わりに文字列として解釈されて、クエリの制約として使用されるようにするにはどうすればよいでしょうか?Prolog - 文字列と変数を区別するにはどうすればよいですか?

答えて

1

ダラスを一重引用符で囲むだけで'Dallas'となります。 Btwそれは文字列ではなく原子を形成する。たとえば、デフォルトの設定でSWIをPrologで、文字列は次のようになります。

?- X = "hello". 
X = [104, 101, 108, 108, 111]. 

原子が

?- X = 'hello'. 
X = hello. 

だろうが、それらの両方が述語とそのセマンティックの独自のセットを持っています。

+1

[二重引用符の詳細](http://stackoverflow.com/questions/8264699/what-is-the-difference-between-and-in-prolog) – false

関連する問題