swi-prolog打印多个变量

时间:2015-03-24 10:49:15

标签: prolog

我想在swi-prolog中打印多个变量,目前我正是这样写的:

writeln('child link : '),
writeln(LINK_CHILD),
writeln('rule - four'),
writeln(REND_PARENTI),
writeln(REND_CHILDI)

所以每个变量都打印在新行上,我无法找到以单行打印它们的方法。我感谢任何帮助

2 个答案:

答案 0 :(得分:3)

您可以使用write代替writeln,甚至更好,使用format

?- format("~a~n~a:~a~n", [x, y, z]).
x
y:z
true.

或者,对于您的情况,例如:

format("child link: ~w rule - four ~w", [LINK_CHILD, REND_PARENT....]),
flush_output

如果要在到达行尾之前打印出来,则需要flush_output。见SWI-Prolog' primitive character IO

答案 1 :(得分:1)

单行写作将使用write/1 i.o完成。 writeln/1

通过使用write/1调用谓词(在本例中为maplist/3)来获取参数列表(在本例中为打印原子列表),可以编写任意数量的原子。 / p>

结果代码是:

?- maplist(write, ['child link : ',LINK_CHILD,'rule - four',REND_PARENTI,REND_CHILDI]).