SWI-Prolog 无权修改 init.pl 中的静态过程"set_prolog_flag/2"



我正试图在命令行中修改SWI Prolog的初始配置,遵循SWI PrologFAQ 1和2中的官方文档来更改显示的输出。然而,我遇到了这个错误:

X@X:~/Documents/Prolog$ swi-prolog.swipl
ERROR: /home/X/snap/swi-prolog/55/.config/swi-prolog/init.pl:1:
ERROR:    No permission to modify static procedure `set_prolog_flag/2'
Welcome to SWI-Prolog (threaded, 64 bits, version 8.4.3)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.

文件init.pl是一个单行:

set_prolog_flag(answer_write_options, [quoted(true), portray(true), max_depth(18)]).

我发现的所有信息都是,这个错误可能与一个系统定义的标志有关,该标志没有标记为可更改,因为这个论坛中No permission to modify static procedure的其他条目更多地与语法错误有关。


我是prolog的新手,欢迎提供帮助和建议

您试图将set_prolog_flag/2重新定义为事实。

在其前面添加:-,使其成为指令。

最新更新