【问题标题】:Is there a way to avoid to prefix every predicate of a module in the SWI-Prolog console?有没有办法避免在 SWI-Prolog 控制台中为模块的每个谓词添加前缀?
【发布时间】:2015-11-06 19:51:24
【问题描述】:

这是一个例子:

%% file named: p.pl
:- module(p,[   ]).
:- use_module(library(chr)).
:- chr_constraint red, blue, yellow, orange, purple, green.
red, blue <=> purple.
red, yellow <=> orange.
blue, yellow <=> green.

在 SWI-Prolog 控制台中,我必须输入例如:

p:red.

我知道如果我在模块声明中导出它,所有东西都是可调用的,但出于调试目的,这是太多的输入。

[p].

不工作。

我暂时想做的调试是:

:- module(p,[ * everything  ]).

【问题讨论】:

    标签: module prolog swi-prolog


    【解决方案1】:

    一种可能的替代方法是使用module/1 内置谓词来切换交互式顶层的默认工作模块。试试:

    ?- module(p).
    

    在此查询之后,您应该能够调用 p 模块中的任何谓词,而无需使用 p: 前缀。

    【讨论】:

    • 对 SICStus、YAP 进行同样的保留。
    猜你喜欢
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2022-10-13
    • 2011-08-21
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多