22得票2回答
在GNU-Prolog中,我能否“捕获”Linux信号?

在GNU Prolog中是否有一种方法可以“捕获”(例如“捕获”)操作系统信号?(我正在使用Ubuntu / Linux,最新的gprolog)。 我想很久以前我在WAMCC中使用了这种方法,之后才转变为GNU Prolog::- catch(Long_Running_Goal,signal...

17得票3回答
利用Prolog进行大规模编程

我试图保持我的Prolog代码模块化,想知道大家是否有任何建议如何实现。我一直使用简单的consult方法来实现,但随着文件数量的增加,这种方法变得繁琐且容易遇到命名冲突。是否有类似于“典型”导入的结构可以使用,比如 %------------------------------------...

11得票3回答
Prolog - 生成符合给定范围的数字

我想使用像这样的谓词: I'd like to use predicates like:range(X,0,5) range(X,4,200) range(X,-1000000,1000000) dom_range(X,-1000000,1000000) 带有含义:range(X,0,5) :...

10得票1回答
SWI Prolog与GNU Prolog - SWI下的CLP(FD)问题

我在Prolog中编写了一个快速谓词,尝试使用CLP(FD)及其解决方程组的能力。problem(A, B) :- A-B #= 320, A #= 21*B. 当我在SWI中调用它时,我会得到:?- problem(A,B). 320+B#=A, 21*B#=A. 然而在GN...

9得票2回答
gprolog:在异常后获取堆栈跟踪

在使用gprolog时,我经常会遇到没有任何行号或上下文的异常,例如: uncaught exception: error(instantiation_error,(is)/2) 没有任何上下文。我知道我可以使用 trace,但是使用 trace 进行调试需要执行很多操作,直到出现错误的...

7得票3回答
Prolog基本示例中的存在错误过程

我正在尝试学习Prolog的基础知识,但在编写以下代码时一直遇到existence_error错误。 comes_after(m1, m2). comes_after(m2, m3). comes_after(m3, m4). comes_after(m4, m5). comes_after...

7得票1回答
如何在运行Prolog脚本时使其打印查询结果?

我是Prolog的新手,想要将所有查询保存在文件中而不是手动输入。 我在facts.pl中有以下事实: likes(wallace, cheese). likes(grommit, cheese). likes(wendolene, sheep). friend(X, Y) :- \+(...

7得票1回答
GNU Prolog断言错误。

我是Prolog的新手,但我卡在了这个看似简单的命令上。我已经成功加载了一个知识库,但每当我尝试使用assert(甚至是help)时,都会出现以下消息: uncaught exception: error(existence_error(procedure,assert/1),top_lev...