[英]Evaluating a String in Prolog
在序言中,我有一個字符串需要評估,例如:
X = '4+2/5'
有沒有辦法將此字符串轉換或解析為要求值的表達式?
就像是:
?- String_Eval('4+2/5', Result).
Result = 4.4.
使用SWI-Prolog 6.6.6。
謝謝
您可以使用謂詞term_to_atom / 2將原子(稱為字符串)轉換為可評估的術語,然后使用is
運算符執行指定的操作。 如果要考慮安全性,則應格外小心,因為這大致相當於JavaScript中的eval
。
完整的例子
?- term_to_atom( T, '4 + 2 / 5' ).
T = 4+2/5.
?- term_to_atom( T, '4 + 2 / 5' ), X is T.
T = 4+2/5,
X = 4.4.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.