Turn off swi-prolog protocol output of ANSI terminal control sequences

 To save a record of program execution in prolog, we use the special predicates: protocol and noprotocol. Like this:

 

protocol(‘execution.txt’).

 

noprotocol.

 

All the queries and their responses between the protocol and noprotocol will be saved to this file.

 

If we use these predicates, we will get records like this:

 

11 ?- beside(block2, X).

X = block3  [1m;[0m

[1;31mfalse.[0m

 

12 ?- beside(block4, X).

X = block7  [1m;[0m

X = block3  [1m;[0m

[1;31mfalse.[0m

 

The characters [1m [0m looks like garbage characters but they are ANSI terminal codes. We can get the reference from here: 

http://wiki.bash-hackers.org/scripting/terminalcodes

 

As we can see from the link above, [0m refers to reset all attributes and [1m refers to set bright attribute.

 

If we want to disable these codes, we can use predicate: set_prolog_flag(color_term, false). before starting the protocol session.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值