我有一个列表L =[a+b,b+c]
,我想将其转换为字符串并打印输出a+bb+c
。
你能帮我把这个列表转换成字符串吗?我尝试atomic_list_concat
在 SWI-Prolog 中使用,但它给a+b
.
我有一个列表L =[a+b,b+c]
,我想将其转换为字符串并打印输出a+bb+c
。
你能帮我把这个列表转换成字符串吗?我尝试atomic_list_concat
在 SWI-Prolog 中使用,但它给a+b
.
在 SWI-Prolog 中:
?- with_output_to(atom(Atom), maplist(write, [a+b, b+c])).
Atom = 'a+bb+c'.
write
如果您需要更多地控制术语(例如a+b
)的编写方式,您可以调用自定义谓词来替换。
您列表的成员是复合术语,因此您必须在调用之前使它们成为原子atomic_list_concat
:
custom_print(L) :-
maplist(term_to_atom, L, L1),
atomic_list_concat(L1, L2),
print(L2).