【发布时间】:2016-11-04 21:41:59
【问题描述】:
我想检查用户输入的句子中的单词是否与列表中的至少一个字符串匹配。这就是我所拥有的。当我输入例如“香蕉车”(它不应该)时,我的谓词测试返回 false。
在嗖嗖的序言中,我编写了 enterQuery。当出现提示时,我写了“香蕉车”。我回来了[香蕉,汽车][香蕉,苹果]假
enterQuery:-
read(X),
processQuery(X).
processQuery(X):-
split_string(X," ", " ", L),
write(L),
test(L).
test(L):-
write([banana, apple]),
common_member(L,[banana,apple]),
write('successs').
common_member(Xs,Ys) :-
member(E,Xs),
member(E,Ys).
当我查询时:
?- enterQuery.
|: 'banana car'.
[banana,car][banana,apple]
false.
相反,我希望:
?- enterQuery.
|: 'banana car'.
[banana,car][banana,apple]successs
【问题讨论】:
-
对我来说看起来不错。你需要展示你的实际交互,仅仅说“返回false”是不够的。
-
@Boris 好的。在解释器(swish prolog)中,我写:enterQuery。当提示时,我输入“香蕉车”。我得到的输出是 [banana, car][banana, apple]false 谢谢!
-
不,不够好,您真的应该将实际的交互式提示内容复制粘贴到问题中。
标签: prolog swi-prolog