有没有办法解决这个问题:
genre(blues).
gere(hiphop).
genre(rock).
这样的事情:
genre(blues;hiphop;rock).
*我知道这不起作用,但确实存在类似的事情。
答案 0 :(得分:2)
您无法整合事实,但您可以将它们变成一个简单的规则,如下所示:
genre(X) :- member(X, [blues, hiphop, rock]).
member/2
是built-in list predicate in SWI测试列表会员资格。
答案 1 :(得分:1)
这使您可以在列表的所有元素中应用谓词,并且只有在所有应用程序都成功时才会成功。
test_list( _, [] ).
test_list( F, [H|T] ) :- P =.. [F,H], P, test_list( F, T ).
答案 2 :(得分:0)
您可以使用此语法
genre(X) :- X=blues ; X=hiphop ; X=rock.
但我个人建议会员/ 2路......