Prolog 如何保存到列表和写入变量名
我需要实现谓词 项变量 我需要得到一个术语并返回一个变量列表(每个变量只返回一次) 对于每个新变量,我检查它是否是列表的成员,如果不是,则将变量名添加到列表中 我的问题是,当我在列表中保存变量时,它被保存为_g474,我需要将它保存为变量名X 有没有办法得到变量名 谢谢Prolog 如何保存到列表和写入变量名,prolog,swi-prolog,Prolog,Swi Prolog,我需要实现谓词 项变量 我需要得到一个术语并返回一个变量列表(每个变量只返回一次) 对于每个新变量,我检查它是否是列表的成员,如果不是,则将变量名添加到列表中 我的问题是,当我在列表中保存变量时,它被保存为_g474,我需要将它保存为变量名X 有没有办法得到变量名 谢谢 我的代码: term_variables(Term) :- Term=..L, term_variables(L, []). term_variables([X| Xs], Vars):- compo
我的代码:
term_variables(Term) :-
Term=..L,
term_variables(L, []).
term_variables([X| Xs], Vars):-
compound(X),
X=..L,
term_variables(L, Vars)
;
var(X),
not(member(X, Vars)),
write(X),
term_variables(Xs, [X|Vars])
;
term_variables(Xs, Vars).
term_variables([], _,).
多年来,
term_variables/2
是SWI中的内置谓词。所以你不能重新定义它。要么你正在使用一个非常旧的版本,要么…我不想重新定义它,我只需要实现它。。。它需要有不同的名称。多年来,term_variables/2
是SWI中的内置谓词。所以你不能重新定义它。要么你正在使用一个非常旧的版本,要么…我不想重新定义它,我只需要实现它。。。它需要有一个不同的名称。