我正在尝试编写一个程序来评估函数并对其进行一些操作。
dynamic evaluate/2.
begin :- writeln("Write your function"), read(Line),
assert((evaluate(X, Y) :- Y is Line)).
由于在SWI-prolog变量名称被更改为_«number»,当我尝试调用evaluate()时,它不起作用。
对此有何解决方案?
感谢。
答案 0 :(得分:3)
使用read_term/2
(http://www.swi-prolog.org/pldoc/man?predicate=read_term/2)与variable_names
选项代替read(Line)
:
read_term(Line, [variable_names(['X'=X])])