swi-prolog 打印多个变量
swi-prolog print multiple variables
我想在swi-prolog中打印多个变量,目前我是这样写的:
writeln('child link : '),
writeln(LINK_CHILD),
writeln('rule - four'),
writeln(REND_PARENTI),
writeln(REND_CHILDI)
所以每个变量都打印在新行上,我想不出在单行中打印它们的方法。感谢您的帮助
您可以使用 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.
单行书写可以用 write/1
i.o 完成。 writeln/1
.
可以通过使用 maplist/3
为参数列表(在本例中为打印原子列表)调用谓词(在本例中为 write/1
)来写入任意数量的原子.
结果代码是:
?- maplist(write, ['child link : ',LINK_CHILD,'rule - four',REND_PARENTI,REND_CHILDI]).
我想在swi-prolog中打印多个变量,目前我是这样写的:
writeln('child link : '),
writeln(LINK_CHILD),
writeln('rule - four'),
writeln(REND_PARENTI),
writeln(REND_CHILDI)
所以每个变量都打印在新行上,我想不出在单行中打印它们的方法。感谢您的帮助
您可以使用 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.
单行书写可以用 write/1
i.o 完成。 writeln/1
.
可以通过使用 maplist/3
为参数列表(在本例中为打印原子列表)调用谓词(在本例中为 write/1
)来写入任意数量的原子.
结果代码是:
?- maplist(write, ['child link : ',LINK_CHILD,'rule - four',REND_PARENTI,REND_CHILDI]).