我知道Prolog-builtin“string_to_list”。现在我需要改变其功能。
?- string_to_list('a*1+2', L).
L = [97, 42, 49, 43, 50].
我该怎么扭转这个?有内置功能吗? 任何做“所需功能”的事情都会有很大的帮助。
?- desiredfunction([97, 42, 49, 43, 50], R).
R = 'a*1+2'.
谢谢。
答案 0 :(得分:4)
string_to_list/2
,而是string_codes/2
。
谓词是双向,这意味着您可以插入一个列表,并在另一侧返回一个字符串。
string_codes(R, [97, 42, 49, 43, 50])
更好的是,使用atom_codes/2
,这也是双向的,并且在Prolog实现中得到更广泛的支持:
atom_codes(R, [97, 42, 49, 43, 50])
a*1+2