Prolog使用看起来像内存位置而不是变量内容的字符串进行应答
我不熟悉prolog。我一直在试图弄清楚为什么我一直得到以下输出:Prolog使用看起来像内存位置而不是变量内容的字符串进行应答,prolog,Prolog,我不熟悉prolog。我一直在试图弄清楚为什么我一直得到以下输出: What is your name: |: Jake. Hello, _L142 true. 从以下代码: go:- write('What is your name:'),nl, read(MyNameIs), write('Hello, '),write(MyNameIs),nl. 我以为_L142是要写回我刚才键入的名称,即Jake。read实际上是Prolog术语的解析器,因此它将Jake
What is your name:
|: Jake.
Hello, _L142
true.
从以下代码:
go:-
write('What is your name:'),nl,
read(MyNameIs),
write('Hello, '),write(MyNameIs),nl.
我以为_L142是要写回我刚才键入的名称,即Jake。
read
实际上是Prolog术语的解析器,因此它将Jake
(大写!)视为Prolog变量。这与一个新的内部变量\u L142
相统一,并依次打印
要么用小写字母键入您的姓名,单引号引用,要么使用另一种I/O机制而不是
read
aaaaahh,对。谢谢,这很有道理。因此,我应该始终使用Atom或引用字符串。