1

我有一个列表L =[a+b,b+c],我想将其转换为字符串并打印输出a+bb+c

你能帮我把这个列表转换成字符串吗?我尝试atomic_list_concat在 SWI-Prolog 中使用,但它给a+b.

4

2 回答 2

3

在 SWI-Prolog 中:

?- with_output_to(atom(Atom), maplist(write, [a+b, b+c])).
Atom = 'a+bb+c'.

write如果您需要更多地控制术语(例如a+b)的编写方式,您可以调用自定义谓词来替换。

于 2012-09-14T09:36:16.460 回答
1

您列表的成员是复合术语,因此您必须在调用之前使它们成为原子atomic_list_concat

custom_print(L) :-
  maplist(term_to_atom, L, L1),
  atomic_list_concat(L1, L2),
  print(L2).
于 2012-09-14T09:09:32.900 回答