2012-04-06 50 views
2

当您查询Prolog数据库时,通常您会使用以大写字母开头的术语作为变量。但是,假设您的查询的一个约束条件是某个人的位置必须是“达拉斯”,并且您想要查询符合这些规范的数据库中的所有信息。如何正确地确保Dallas不会被解释为一个变量来存储值,而是被解释为一个字符串,而用作查询的约束条件?序言 - 你如何区分只是一个字符串和一个变量?

回答

1

只需将达拉斯包装成单引号:'Dallas'。顺便说一句,这不是一个字符串,而是一个原子。例如,在束缚水饱和度,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 2012-04-06 21:59:10

相关问题