tsu*_*uoy 2 list prolog member
为什么prolog回答错误:member([5], [2, 5]).?
有办法解决它吗?
任何帮助将不胜感激.
Prolog为什么回答错误:
member([5], [2, 5]).?
我们问Prolog为什么!下载library(diadem)到您的工作目录并:
?- use_module(diadem).
true.
?- member([5], [2,5]).? Expl.
Expl = member([_|_], [2, 5])
; ...
Run Code Online (Sandbox Code Playgroud)
它不仅失败而且失败也失败了:而不是[5]具有单个元素5的列表,我们现在只需要至少一个元素 - 无论哪个.因此我们可以将值Expl作为仍然失败的查询.因此,剩余目标中的某些东西必定是罪魁祸首.
?- member([_|_], [2, 5]).
false.
Run Code Online (Sandbox Code Playgroud)
还要注意没有概括的内容:这两个元素仍在这里!如果它们是变量,查询就会成功!稍微概括一下查询:
?- member([5], [2, Any]).
Any = [5].
Run Code Online (Sandbox Code Playgroud)
现在它成功了!