Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。
Turbo Prolog:通过向列表添加最少数量的字符来创建回文
Turbo Prolog 上有一段代码可以从整个输入列表创建回文。 需要通过向列表中添加最少的字符来构建回文。 例如,我们输入了一个列表...
我很难理解为什么当其中一个子句是否定时交换两个主体子句会给出不同的结果。 结婚了(约翰)。 男(约翰)。 男性(kev)。 单身汉1(X) :- \+ 已婚(X), ...
我正在尝试编写一个谓词 fourExactly(X, List) 来检查变量 X 是否在列表中恰好出现四次。如果是这种情况,谓词应该为 true,如果不是,则谓词应该为 false。他...
有一个关于序言中的 m.g.u(最通用统一符)的快速问题。 我们被问到 m.g.u 是什么: f(X, g(Y, h(Z))) = f(Z, g(P, h(a)))。 有 2 个可能的答案 1. θ = {X/Z,Y/P,Z/a}。 2. θ =...
我开始学习Prolog。我有各种各样的书,我什至还买了标准版。我喜欢标准之类的东西,因为它们精确地定义了事物。但有些概念我无法理解。部分...
我在使用 CHR 解决需要回溯的问题时遇到了明显的问题。我确信在某个地方使用 CHR 有一个经典的解决方案来解决这个问题,但我似乎找不到它......
给定 Prolog 理论和一小组可能的查询,似乎有可能生成所需的搜索树/图,然后将其优化/减少到......
我在序言中所做的这个谓词一直给我 False 而没有其他任何东西。 bintree_size(Tree, 0) :- Tree = []. bintree_size(树,大小):- 树 = [bt(_, 二叉树节点左,
所以在很多情况下,比如: 总和(X,Y,Z):- Z#=X+Y。 您可以给出最通用的查询来返回通用解决方案: ?-summa(X, Y, Z)。 $VAR(X)+ $VAR(Y)#= $VAR(Z)。 我有一个公式涉及...
我要编写谓词,仅当且仅当元素 X 出现在列表 L 上的 Y 之前时才为 true 之前(L,X,Y):- nth1(PX, L, X), nth1(PY, L, Y), PX < PY. Above, you can ...
once/1 可以定义为 一次(目标):- 目标,!。 我试图理解 SWI Prolog 文档中讨论中出现的这两个示例之间的区别: 请注意,这是绝对的...
我想获取 ECLiPSe 加载时使用的种子。我知道如何通过 seeds/1 设置它,但如果我没有设置它,我不知道如何查询它:即如何检索 ECLi 设置的种子...
我正在尝试运行一个简单的 gprolog 在我的 Linux 机器上运行,GNU Prolog 是从 Ubuntu 软件中心安装的。 从 GNU Prolog Intro 中我得到了以下示例,存储在 HelloWorl 中...
我正在尝试编写一个受 Aristid Lindenmayers L-System 启发的小型递归重写系统,基本上是为了学习 Prolog 以及思考 Prolog 中的生成概念。我愿意...
SICStus Prolog 用户手册说明了其通用限制: 在 32 位(64 位)架构上创建的原子数量不得超过 1048575 (33554431)。 所以当我运行以下命令时...
我很难理解为什么 fib([1,2],F) 找到第二个解决方案 false,具有以下条款和规则: fib([A,B|C],F) :- fib([B|C],S), 纤维(C,T), F是(S+T)。 fib([A],1). 纤维([...
我已经查看了无数其他类似的问题,但我还没有找到可行的解决方案,所以我问这个: 我有一个规则: check_prime(X) :- X > 0, X0 为 X - 1, (X =:= ...
首先,我是 Prolog 新手,所以请对我宽容一些...另外,我正在使用 SWI-Prolog, 所以我想对 SWI 使用正确的语法。 在这种情况下,我想定义继父母(特别是继母...
PYSWIP 无法在 pyinstaller 可执行文件中工作
我用 TKINKTER 和 PYSWIP 用 python 和 prolog 完成了一个项目。当使用“pyinstaller -w --onefile main.py”创建可执行文件时,它给我一个错误,因为它没有使用 PYSWIP