Prolog - 检查用户输入

时间:2011-09-17 15:24:54

标签: io prolog

嗨大家好,

我想知道是否有一种简单的方法可以检查用户在SWI-Prolog中输入的内容。我的工作如下:

:- read(Term),
   Term = 'A' -> doSomeStuff, !;
   (Term = 'B' -> doOtherStuff, !;
   (Term = 'C' -> doSomething)).

我的目标是当用户输入字符A时执行某个操作,当输入是B时执行另一个操作,依此类推......但我的代码似乎不起作用。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:0)

如果您在提示符下键入'A'.<Enter>,则无效。

答案 1 :(得分:0)

你应该在你的条款中有一个头,例如

do :- read(Term),
    (Term = 'A' -> doA, !;
    (Term = 'B' -> doB, !;
    (Term = 'C' -> doC))).

doA :- writeln('DoA').
doB :- writeln('DoB').
doC :- writeln('DoC').

然后,请致电?- do.,然后输入'A'. <enter>

使用简单常量更容易:

do2 :- read(Term),
    (Term = a -> doA, !;
    (Term = b -> doB, !;
    (Term = c -> doC))).

然后,请致电?- do2.,然后输入a. <enter>