Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。
我一直在尝试学习 Prolog,这个特殊的事情已经困扰我一段时间了:为了完成任何事情,我的查询需要非常长。特别是,我有以下片段
使用带有内联谓词或“lambda”的“findall”的 Prolog 过滤列表
我有这些数据(数据是从 csv 读取的,它必须看起来像这样,又名术语列表,而不是数据库中定义的简单术语): 行 = [行('A', 150), 行('B', 300), 行('C', 50)]....
Prolog - 如何将 CSV 文件输出行转换为可查询术语?
我正在尝试学习使用 Prolog,并且非常惊喜地发现 SWI Prolog 提供了一个开箱即用的 CSV 库:https://www.swi-prolog.org/pldoc/man?section=csv 不过我不知道...
我正在尝试生成 6 个大小为 2N 的 0 和 1 向量,检查用 XOR 运算编写的约束、字典序和定义的辛积(接近标量积)...
我的Prolog表达式的结构与说谎者悖论的结构同构吗? 我们假设 Prolog 不会评估术语“not”和“true”的含义,并且 o...
我需要在序言中删除列表的一个元素,但只有当您将列表放入咨询中时它才有效,例如:eliminar(1,[1,2,3], X)。它返回 X=2,3,但是当我想删除
我有一个序言文件,其中有以下类型的谓词: nondet_(A、B、C、D、E、F、G、H) :- (I = 0), 摘要_5(A,B,C,D,J,K,L,G,H), nondet(I、B、C、D、E、F、K、L)。 摘要_5(A,B,C,D,E,F,G,H,I)...
我有一个这样形式的列表: [节点(2,5,4,3),节点(3,5,4,3),节点(2,10,12,4),节点(5,2,2,2)] 我需要一个方法来返回第一个值为 2 的所有节点。 然后: [节点(2,5,4,3),节点(2,10,...
我的目标是返回列表列表中最长的列表。例如:[[1,2,3],[1,2]]-> [1,2,3]。 我写了这个 list_max_len([L],L). list_max_len([X,Y|T],L):- 长度(X) >=长度(Y),
在可视化序言中,序言程序中有“域”部分,您可以在其中定义类型。 swi-prolog中有类似的东西吗? 在可视化序言中,类型定义如下: 域 新类型 =
在SWI-Prolog中,如何找到最大化或最小化某些原子的解决方案?
我有兴趣使用 Prolog 来找到最大化某些输出原子的解决方案。例如,有 10 个谓词: 解决方案(1)。 解决方案(2)。 解决方案(3)。 解决方案(4)。 解决方案(5)。 所以...
考虑一下: 列表长度([],0)。 list_length([H|T], N) :- list_length(T, N - 1)。 它不会给出编译错误,但不起作用。 我的想法是: 假设我调用 list_length([1], N) 我们问...
我编写了一个谓词 shuffle/3,它生成两个列表的“洗牌”。当第二个和第三个参数被实例化时,第一个参数变成一个列表,其中包含两个参数的所有元素
我想在Prolog中打印一个数字的除数,我编写了以下代码: find_and_display_divisors(N) :- write('除数'), write(N), write(':'), nl, find_divisors(N, 1)。
我想在Picat中快速创建一个结构。但在创建结构时应评估结构的组成部分。到目前为止,我尝试过,当组件是
Hilog 项(即具有函子任意项的化合物)仍然被视为 XSB Prolog(或任何其他 Prolog)中的强大功能吗? 目前有很多XSB项目在使用这个功能吗...
Prolog 模块的 ISO 标准 (ISO/IEC 13211-2) 有哪些(感知到的)缺点?
Prolog 模块的 ISO 标准并未被广泛采用。我发现唯一可以实现它们的系统是 Amzi!序言。大多数系统没有采用ISO标准的原因是什么...
CLP(FD)中的具体化谓词可以用来检查逻辑表达式的相等性吗?
根据文档(A.9.12节),CLP(FD)约束如#>、#=、#/\等可以具体化。 约束#<==>/2 应该是 真当且仅当 P 和 Q 相等 手风琴...
所以我有一个程序,它有一个谓词,用给定的新元素替换列表中某些元素的第一次出现,并生成一个新列表。我是这样做的: 更改Fst(旧E,[旧E...
Prolog 似乎无法返回查询的某些特定答案。我在 SWI-Prolog 中编写了一段简短的代码,其中我尝试检查给定的二进制向量 C 是否可以