0

我是序言的新手。我一直在试图弄清楚为什么我不断得到以下输出:

What is your name:
|: Jake.
 Hello, _L142
 true.

从以下代码:

go:-
    write('What is your name:'),nl,
    read(MyNameIs),
    write('Hello, '),write(MyNameIs),nl.

我认为 _L142 是为了写回我刚刚输入的名字,即 Jake。

4

1 回答 1

1

read实际上是 Prolog 术语的解析器,因此它将Jake(首字母大写!)视为 Prolog 变量。这与一个新鲜的内部变量统一起来,_L142然后再打印出来。

使用小写字母键入您的姓名,将其单引号引起来,或者使用其他 I/O 机制而不是read.

于 2013-04-14T13:33:49.783 回答