Prolog 输出中不需要的逻辑变量
Unwanted logical variable in Prolog output
我必须为大学做 Prolog 作业,我已经基本完成了,但我一直在输出中得到一个 _G
变量。
我们需要将列表 - L
- 与常规术语 - K
- 进行比较,如果列表中的项目大于该术语,则将其添加到另一个列表 - 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]
R = [12,34,45, _Gxxx]
。我只是不知道为什么。
谓词的正确第一个子句是您现在位于顶部的两个子句的组合。
第一个坚持 K 是 0:你不想要这个。第二个坚持在第二个列表的末尾有一个额外的变量:你也不想要这个。
忽略K并关闭列表:
foo([], _, []).
我必须为大学做 Prolog 作业,我已经基本完成了,但我一直在输出中得到一个 _G
变量。
我们需要将列表 - L
- 与常规术语 - K
- 进行比较,如果列表中的项目大于该术语,则将其添加到另一个列表 - 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]
R = [12,34,45, _Gxxx]
。我只是不知道为什么。
谓词的正确第一个子句是您现在位于顶部的两个子句的组合。
第一个坚持 K 是 0:你不想要这个。第二个坚持在第二个列表的末尾有一个额外的变量:你也不想要这个。
忽略K并关闭列表:
foo([], _, []).