Prolog输出中不需要的逻辑变量

时间:2015-06-16 23:42:52

标签: prolog

我必须为大学做一个Prolog作业,而我大部分时间都已完成,但我在输出中不断获得_G变量。

我们需要将列表 - L - 与常规字词K进行比较,如果列表中的项目大于该字词,请将其添加到另一个列表中 - {{ 1}} - 。

这是我的代码

R

虽然有效,但我teilliste_grK([],0,[]). teilliste_grK([],_,[_]). teilliste_grK([H|T],K,L) :- ( H > K -> L = [H|R], teilliste_grK(T,K,R) ; L = R, teilliste_grK(T,K,R) ). ?- teilliste_grK([12,4,1,34,5,45],9,R). 而不是R = [12,34,45]。我只是不知道为什么。

1 个答案:

答案 0 :(得分:1)

谓词的正确第一个子句是你现在拥有的两个子句的组合。

第一个坚持认为 K 为0:你不想要这个。第二个坚持在第二个列表的末尾有一个额外的变量:你也不想要这个。

只需忽略 K 并关闭列表:

foo([], _, []).