请帮我解决一个简单的问题!
我想将未绑定变量列表打印到屏幕上。
12 ?- write([X, Y]).
[_G1696,_G1699]
但我想在屏幕上看到[X,Y]而不是[_G1696,_G1699]
。可能吗?怎么样?请帮助任何人
答案 0 :(得分:0)
我假设您想要使用未绑定的变量漂亮打印条款?您可以使用事实上的标准numbervars/3
谓词来完成它。例如:
pretty_print_term(Stream, Term) :-
\+ \+ (
numbervars(Term, 0, _),
write_term(Stream, Term, [numbervars(true)])).
pretty_print_term_quoted(Stream, Term) :-
\+ \+ (
numbervars(Term, 0, _),
write_term(Stream, Term, [numbervars(true), quoted(true)])).
在这些片段中,双重否定用于漂亮打印术语,同时放弃numbervars/3
谓词对变量的实例化。
一个用法示例:
?- current_output(Stream), pretty_print_term_quoted(Stream, [X, Y]).
[A,B]
Stream = <stream>(0x10bebcf18).