我想在swi-prolog中打印多个变量,目前我正是这样写的:
writeln('child link : '),
writeln(LINK_CHILD),
writeln('rule - four'),
writeln(REND_PARENTI),
writeln(REND_CHILDI)
所以每个变量都打印在新行上,我无法找到以单行打印它们的方法。我感谢任何帮助
答案 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]).