-2

我正在尝试测试列表是否包含特定关键字。

示例(Java):

if (list.contains(keywordA) || list.contains(keywordB) || list.contains(keywordC))

我尝试了以下变体,但没有运气。

变体 A:( member(X, List), (X='boyfriend'; X='girlfriend') -> writeln('让我们谈谈你们的关系吧。') ; writeln('别再谈了!') )

变体 B:

( member(['boyfriend', 'girlfriend'], List)

returns false, on input ['boyfriend','issues']

4

1 回答 1

1

我会这样写:

test(List) :- 
    (member(boyfriend, List) ; member(girlfriend, List)) 
        -> writeln('Let''s talk about your relationships.') 
        ;  writeln('Not again!').

这似乎有效:

?- test([something,to,do,with,my,boyfriend,mmkay,'?']).
Let's talk about your relationships.
true.

?- test([something,to,do,with,my,friend,mmkay,'?']).
Not again!
true.

如果不知道您的其余代码、您提供的输入、您得到的输出以及您所期望的,那么很难提供帮助。

顺便说一句,您不需要引用小写原子。

于 2013-04-25T22:59:14.417 回答