20得票2回答
理解差异列表

我正在尝试理解Prolog中的差异列表,但是我很难正确地实现它,每次我尝试这样做时,我得到的是一个列表的列表,但那不是我想要的。我正在尝试实现一个追加谓词,但到目前为止运气不太好。我已经尝试了几次,但都没有成功。app(X, Y, Z) :- Z = [X|Y]. ?- app([a,b,c...

7得票1回答
在Scheme中使用DCGs进行解析(无需Prolog)?

有很多基于Scheme的Prolog实现,例如Kanren、Schelog。 显然,在《人工智能编程范例》中,Norvig使用Lisp实现了一个Prolog-to-Lisp编译器,以便使用确定性子句语法。 但是,是否有更简单、更清晰的方法?也许可以巧妙地使用amb来避免实现完整的“Prol...

17得票1回答
Prolog中的“逻辑纯度”是什么意思?

在Prolog编程的上下文中,“逻辑纯度”是什么意思?逻辑纯度标签信息说“只使用Horn子句的程序”,但是,像if_/3这样的谓词如何符合要求,因为它使用了剪枝和各种元逻辑(什么是适当的术语?var/1等)谓词,即底层内容。 我明白它实现了一些“纯净”的效果,但这确切意味着什么? 为了更具...

14得票2回答
Prolog中的逻辑否定

我已经阅读了关于Prolog的Negation by Failure的很多内容,其中Prolog为了证明\+Goal成立,尝试证明Goal失败。这与CWA(close world assumption)密切相关,例如,如果我们查询\+P(a)(其中P是一元谓词),并且没有线索表明P(a)成立,...

10得票3回答
NP完全的背包问题

我看到了这个 ECLiPSe解决方案,它可以解决这个 XKCD漫画中提到的问题。我试图将其转换为纯Prolog。go:- Total = 1505, Prices = [215, 275, 335, 355, 420, 580], length(Prices, N), ...

7得票6回答
有没有适用于Mac的推荐的Prolog集成开发环境?

我想在Prolog上做一些事情。只需要一个适用于Mac的好IDE,让它不会很麻烦。你推荐哪个IDE?

11得票3回答
在Prolog中,事实和函数符号是否相同?

如果您有Prolog声明的下一行,例如:move(state(middle, onbox, middle, hasnot), grasp, state(middle, onbox, middle, has)). 移动和状态都是函子吗? 我有点被事实,函子,术语等搞混了...

8得票2回答
Prolog:一个人是他自己的兄弟吗?

我在理解Prolog代码时遇到了一些困难,由于规则的顺序不同,我的代码会产生不同的结果。 这是我的数据库: parent(tom, bob). parent(tom, liz). parent(mary, bob). parent(mary, liz). male(tom). male(...

35得票2回答
Prolog:源文件中的子句未组合在一起

我有这段代码:% Family tree female(pen). male(tom). male(bob). female(liz). female(pat). female(ann). male(jim). parent(pam, bob). parent(tom, bob). pare...

23得票8回答
不确定性编程语言

我知道在Prolog中你可以做类似这样的事情:someFunction(List) :- someOtherFunction(X, List) doSomethingWith(X) % and so on 这不会遍历List中的每个元素,而是将其分支到不同的“机器”(...