嗨大家好,
我想知道是否有一种简单的方法可以检查用户在SWI-Prolog中输入的内容。我的工作如下:
:- read(Term),
Term = 'A' -> doSomeStuff, !;
(Term = 'B' -> doOtherStuff, !;
(Term = 'C' -> doSomething)).
我的目标是当用户输入字符A时执行某个操作,当输入是B时执行另一个操作,依此类推......但我的代码似乎不起作用。谁能告诉我我做错了什么?
答案 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>
。