用户输入,我们该怎么做?

S.A*_*hid 9 prolog

我们如何从prolog中获取用户的内容:例如:

animal(dog).
animal(cat).
write('please type animal name:'),nl.
/* How to read from user and store it to X 
and then check that user has typed animal name ?*/
?-animal(X).
Run Code Online (Sandbox Code Playgroud)

sep*_*p2k 16

你可以用read它.例如,您可以写入read(X), animal(X).prolog解释器或将其写入脚本文件:

:- read(X), animal(X).
Run Code Online (Sandbox Code Playgroud)

如果您在提示中输入了有效的动物名称,它将被绑定到X.如果输入的名称无效,则不会.

或者您可以定义这样的过程:

read_animal(X) :-
  write('please type animal name:'),
  nl,
  read(X),
  animal(X).
Run Code Online (Sandbox Code Playgroud)

然后在解释器中调用它read_animal(X)..

请注意,输入需要由a终止..

  • @Parkhid:它是'读',而不是'读'.另请注意,您需要使用`.`终止输入.我编辑了我的答案以澄清.它确实有效. (4认同)