Io Prolog-检查用户输入
大家好 我想知道是否有一种简单的方法来检查用户在SWI Prolog中输入的内容。我所做的是:Io Prolog-检查用户输入,io,prolog,Io,Prolog,大家好 我想知道是否有一种简单的方法来检查用户在SWI Prolog中输入的内容。我所做的是: :- read(Term), Term = 'A' -> doSomeStuff, !; (Term = 'B' -> doOtherStuff, !; (Term = 'C' -> doSomething)). 我的目标是在用户键入字符a时执行某个操作,在输入为B时执行另一个操作,依此类推。。。但我的代码似乎不起作用。有人能告诉我我做错了什么吗?如果你在提示符下
:- read(Term),
Term = 'A' -> doSomeStuff, !;
(Term = 'B' -> doOtherStuff, !;
(Term = 'C' -> doSomething)).
我的目标是在用户键入字符a时执行某个操作,在输入为B时执行另一个操作,依此类推。。。但我的代码似乎不起作用。有人能告诉我我做错了什么吗?如果你在提示符下键入
'A.
,它会工作。如果你在提示符下键入'A.
,它会工作。你的子句中应该有一个头,例如
do :- read(Term),
(Term = 'A' -> doA, !;
(Term = 'B' -> doB, !;
(Term = 'C' -> doC))).
doA :- writeln('DoA').
doB :- writeln('DoB').
doC :- writeln('DoC').
然后,调用?-do.
,然后键入'A'代码>
使用简单常量更容易:
do2 :- read(Term),
(Term = a -> doA, !;
(Term = b -> doB, !;
(Term = c -> doC))).
然后,调用?-do2.
,然后键入a
你的子句中应该有一个头,例如
do :- read(Term),
(Term = 'A' -> doA, !;
(Term = 'B' -> doB, !;
(Term = 'C' -> doC))).
doA :- writeln('DoA').
doB :- writeln('DoB').
doC :- writeln('DoC').
然后,调用?-do.
,然后键入'A'代码>
使用简单常量更容易:
do2 :- read(Term),
(Term = a -> doA, !;
(Term = b -> doB, !;
(Term = c -> doC))).
然后,调用?-do2.
,然后键入a代码>嘿,谢谢,我检查了你的代码,但是当我打电话给do2时。然后输入c。我明白了。符合事实的你知道为什么吗?最外面的括号不见了。我现在添加了它们,它正在工作。哦,是的,我没有注意到。非常感谢。嘿,谢谢。我检查了你的代码,但是当我打电话给do2时。然后输入c。我明白了。符合事实的你知道为什么吗?最外面的括号不见了。我现在添加了它们,它正在工作。哦,是的,我没有注意到。谢谢。