gprolog 中的 ANSI 转义字符

ANSI escape characters in gprolog

试图在 prolog 中打印粗体和带下划线的文本,但无法写入它们

 write('3[1mbold3[0m')

产生这个(预期的)错误:

 syntax error: \ expected in \constant\ sequence

使用 gprolog 的正确方法是什么?也许 format ?

write('\[1mbold\[0m').

也就是说,八进制转义序列(以及以 \x 开头的十六进制)也需要用 \ 结束。在 revanche 中,前导零不是必需的,但可以。这绝不是 GNU 特有的,事实上,可能所有接近 ISO Prolog 的系统都有它。