Prolog中String的值

Ahm*_*saf 1 prolog

我正在制作一个程序,从外部文件中读取单词,然后将它们转换为相应的数字,然后计算值..单词计算器!我设法阅读单词..将它们转换成字母..现在我遇到了两个问题:1 - 我之前写过另一个程序,它读取方程并打印结果..当我尝试使用相同的程序给出结果方程式我打印它给出了一个错误,它无法从该文件读取..意外的文件结束.. 2 - 我尝试了另一种方法..当我读取数字构造方程然后通过使用是...所以评估它..

calculate([Word|Rest],X) :-
    word_to_number(Word,Symbol),
    concat(X,Symbol,NewX),
    calculate(Rest,NewX),
    Result is NewX,
    print(Result),
Run Code Online (Sandbox Code Playgroud)

错误:是/ 2:参数没有充分实例化

现在新的连接方程是一个字符串,我不能得到它的值..怎么可以有字符串的值!并评估这个等式

谢谢

Ahm*_*saf 5

好的答案是:

atom_to_term(atom,Term,[]).
Run Code Online (Sandbox Code Playgroud)

字符串是一个术语..例如我的等式是'2 + 1'..我将该术语发送给函数..然后我指定变量我要保存新值,其中是Term,第三个参数是没用..只是把一个空列表..结果是..

Term = 2 + 1 ...然后Result是Term.结果是3.

完成!! 经过4个小时的搜索!!