【发布时间】:2020-10-08 07:33:50
【问题描述】:
我需要编写一个读取用户输入的谓词。如果输入为“yes”(理想情况下为“yes”或“y”),则必须将 yes 分配给参数,如果输入不同,则必须分配 no。
askContinue(Answer) :-
write("Would you like to continue ? "), read(Input), nl,
(Input = "yes" -> Answer = true ; Answer = false).
输出是:
?- askContinue(A).
Would you like to continue ? yes.
A = false.
?- askContinue(A).
Would you like to continue ? no.
A = false.
我做错了什么?
【问题讨论】:
-
对我有用,如果您更改输入的类型,即检查 Input = yes 是否不带引号。
-
这能回答你的问题吗? How to Write User Input to a List Prolog
-
感谢@GuyCoder。这是一个很好的答案,它接近我所需要的,但它没有完全回答这个问题,因为它没有解释如何根据字符串匹配操作的结果有条件地为参数赋值(TA_intern 答案中的 memberchk)。
标签: prolog