2
当您查询Prolog数据库时,通常您会使用以大写字母开头的术语作为变量。但是,假设您的查询的一个约束条件是某个人的位置必须是“达拉斯”,并且您想要查询符合这些规范的数据库中的所有信息。如何正确地确保Dallas不会被解释为一个变量来存储值,而是被解释为一个字符串,而用作查询的约束条件?序言 - 你如何区分只是一个字符串和一个变量?
当您查询Prolog数据库时,通常您会使用以大写字母开头的术语作为变量。但是,假设您的查询的一个约束条件是某个人的位置必须是“达拉斯”,并且您想要查询符合这些规范的数据库中的所有信息。如何正确地确保Dallas不会被解释为一个变量来存储值,而是被解释为一个字符串,而用作查询的约束条件?序言 - 你如何区分只是一个字符串和一个变量?
只需将达拉斯包装成单引号:'Dallas'
。顺便说一句,这不是一个字符串,而是一个原子。例如,在束缚水饱和度,Prolog的默认设置,字符串将是:
?- X = "hello".
X = [104, 101, 108, 108, 111].
当一个原子将
?- X = 'hello'.
X = hello.
他们都有自己的一套谓词和它们的语义。
[更多关于双引号](http://stackoverflow.com/questions/8264699/what-is-the-difference-between-and-in-prolog) – false 2012-04-06 21:59:10