Prolog输出消息理解
这是一个非常快的一个,我不知道正确的方式谷歌它 假设我们有这样的输出:Prolog输出消息理解,prolog,Prolog,这是一个非常快的一个,我不知道正确的方式谷歌它 假设我们有这样的输出: X = [4|_1218] 通常需要改变什么才能得到输出,比如4 member1(Head, [Head|_]):-!. member1(Item, [_|Tail]):- member1(Item, Tail). findnotin([Head|_], RuledOut, [Head|_]):- not(member1(Head, RuledOut)). 编辑Completedish程序: f
X = [4|_1218]
通常需要改变什么才能得到输出,比如4
member1(Head, [Head|_]):-!.
member1(Item, [_|Tail]):-
member1(Item, Tail).
findnotin([Head|_], RuledOut, [Head|_]):-
not(member1(Head, RuledOut)).
编辑Completedish程序:
find_not_in([], _, _).
find_not_in([Head|Candidates], RuleOut, [Head|Legal]):-
not(member1(Head, RuleOut)),
find_not_in(Candidates, RuleOut, Legal).
find_not_in([_|Candidates], RuleOut, Legal):-
find_not_in(Candidates, RuleOut, Legal).
问题是什么?你的意思是不是
[4]
?findnotin([4,2,1,6],[2,1,6],X)@WillemVanOnsemI已经对程序进行了一些更新@WillemVanOnsem我只是想得到一些指导真正尝试使用基本情况进行测试:find_not_in([]),[uuu,[])。
说得清楚,find_not_in([],[uu,[uu])就是说,在任何规则的空列表中找不到任何东西的结果就是任何东西。结果不应该是什么。结果应该是一个空列表。因此,在([],[u,[])中查找不在(
)。