如何在Prolog中保留变量名?

时间:2015-10-19 13:50:26

标签: prolog

我正在尝试编写一个程序来评估函数并对其进行一些操作。

dynamic evaluate/2.
begin :- writeln("Write your function"), read(Line),  
              assert((evaluate(X, Y) :- Y is Line)).

由于在SWI-prolog变量名称被更改为_«number»,当我尝试调用evaluate()时,它不起作用。

对此有何解决方案?

感谢。

1 个答案:

答案 0 :(得分:3)

使用read_term/2http://www.swi-prolog.org/pldoc/man?predicate=read_term/2)与variable_names选项代替read(Line)

read_term(Line, [variable_names(['X'=X])])