Prolog - 字符串或字符的字符代码列表

ali*_*ali 6 list character prolog character-encoding

我在prolog中有一个字符代码列表.

我想把它们改成字符.

例如,

L = "abc" 回报 L = [97,98,99]

假设我开始 L = [97,98,99]

无论如何将L转换回abc,如果存在方法

convert(L, X) 回报 X = abc

谢谢.

ony*_*ony 5

鉴于L="abc", convert(L, X), X = abc我要说你想从prolog字符串获取atom(参见数据类型描述).我想你想要atom_codes/2或类似的东西.它应该像L="abc", atom_codes(X, L).文档一样工作.

很遗憾,目前我的系统中没有SWI-Prolog.但这里是包含atom_codes/2的YAP

YAP 6.3.2 (x86_64-linux): Sat Sep  1 08:24:15 EEST 2012
MYDDAS version MYDDAS-0.9.1
?- L="abc", atom_codes(X,L).
L = [97,98,99],
X = abc
Run Code Online (Sandbox Code Playgroud)

不要忘记,如果你需要输出字符串,你不需要将它转换为原子.参见SWI(或YAP)中的格式/ 2

?- L="abc", format("~s~n", [L]).
abc
L = [97,98,99]
Run Code Online (Sandbox Code Playgroud)