0
如何在SWI Prolog中重命名变量?重命名SWI Prolog中的变量
我试图使用这样的numbervars谓词。
numbervars(Xs,1,_,[functor_name(name)]).
所以,如果X 5是4个变量列表,它看起来是这样,当我犯“writeln(XS)”。
[name(1),name(2),name(3),name(4)]
如何使用该函子,或任何其他方式去除括号,使其看起来像:
[name1,name2,name3,name4]
在此先感谢。
谢谢,它的工作原理。 – Mockingbird
还有一件事请。 看起来像我不能在使用build_atoms之后为那些变量赋值。那么,它毕竟是有意义的。 有什么办法可以使[Foo1,Foo2,Foo3]代替[foo1,foo2,foo3]。 这样当我运行?-foo(X)时,X = [0,1,1]。 其中foo(X): - 长度(X,3),build_atoms(X,1,)。 它会工作吗? 我的意思是,这些名称取代了我的程序中稍后将被赋值的真实值。我希望它只是当我将它打印到终端时的变量名称。 我希望我很清楚,再次感谢。 –
Mockingbird
@Mockingbird我明白了。如果你想要动态变量名称的效果,也许更典型的方法是使用键/值对。因此,您可以使用'build_atoms'来创建键名称,然后在列表中看起来像'[foo1-val1,foo2-val2,...]'的值。 – lurker