如果没有未实例化的变量,则Prolog返回True

时间:2011-10-21 23:44:05

标签: prolog

我需要帮助编写谓词基础(Term),如果Term没有任何未实例化的变量,则返回true。

我知道我需要使用内置谓词仿函数,arg和'= ..'但我想我需要帮助才能开始...

我的想法是我需要遵循术语(术语可以是多个变量的列表)。检查Head,然后递归查看列表的其余部分,并检查列表的其余部分是否未实例化。

但我的问题是......我如何检查它是否未实例化?

1 个答案:

答案 0 :(得分:1)

您可以使用var/1谓词来测试术语是否是未实例化的变量。

?- var(X).
true.

?- var(x).
false.

?- var((X,Y)).
false.

?- var(t(Y,Z)).
false.