Prolog - 就像gensym,但是对于变量

时间:2013-06-16 19:50:57

标签: prolog

我正试图在dynamic/1assert/1规则的帮助下在运行时生成一些规则。

有没有办法生成要在该规则中使用的变量,就像gensym但是用于生成变量?

1 个答案:

答案 0 :(得分:2)

我会使用functor / 3或length / 2。两者都可以创建随后可以通过索引访问的变量,分别使用arg / 3或nth1 / 3。

例如

?- functor(T, $, 5), arg(3, T, some_value).
T = $(_G1070, _G1071, some_value, _G1073, _G1074).

?- length(T, 5), nth1(3, T, other_value).
T = [_G1070, _G1073, other_value, _G1079, _G1082].