我正在尝试学习Prolog,我问自己是否可以使用以下谓词:
我能够解决除最后一个谓词以外的所有谓词。你能给我一个解决方法的提示吗?
member_of(E,[E|_]).
member_of(E,[_|R]):-member(E,R).
member_8([8|R]).
member_8([_|R]):-member_8(R).
member_7_or_8([7|R]).
member_7_or_8([8|R]).
member_7_or_8([_|R]):-member_7_or_8(R).
答案 0 :(得分:0)
解决方案是拥有一个“帮助”谓词,该谓词使您可以检查元素是否为给定列表的成员。借助该谓词,可以检查是否存在多个元素。例如
member_of(E,[E|_]).
member_of(E,[_|R]):-member(E,R).
member_7_and_8(L):-member_of(7,L),member_of(8,L).