簡體   English   中英

在Prolog中評估字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM