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 に答える