Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。
我有如下列表: [a、b、b、e、e、f、f、g] 第一个和最后一个条目是单个条目,而所有其他条目都是重复的。我怎样才能删除这些额外的条目。我不应该扰乱秩序。 我试过了
我正在尝试从终端运行序言。我已经安装了版本 7.2.2 并使用以下命令将其添加到我的环境路径中: PATH=$PATH:/Applications/SWI-Prolog.app/Contents/MacOS 然后去...
许多谓词本质上使用某种形式的传递闭包,只是为了发现终止也必须得到解决。为什么不使用closure0/3一劳永逸地解决这个问题: :- 元谓词(cl...
我正在构建一个界面,其目的是诊断某人并提供一种治疗形式,包括治疗方法、费用和持续时间。我首先提供一个列表...
我对剪切的位置很困惑。不确定它们如何影响输出。下列位置中的每个切口有什么区别? 子集([],_):-![1]。 子集([H|T], ...
我需要一个谓词来找到妹妹 ister(X, Y) - “如果 X 是 Y 的姐妹,如果他们有共同的父母 W,X 是女性,并且 X 不是 Y”。 问题是每个“孩子”都有两个父母...
我有一个矩阵板,其开头为: []( [](1,2,3,4,5,6), [](_,1,_,_,5,_), [](_,5,1,_,_,6), ) 该程序的目标是以数独风格解决它,其中 _ 是未知数。 第一个...
Prolog 无法使用“=”执行算术,但使用“is”会引发实例化错误
`我正在尝试解决序言中的逻辑难题,我一切正常,除了当我运行程序时,它不会将数字加在一起,而是在中间用+打印它们,我尝试更改= t。 ..
使用SWI-Prolog的qsave_program生成二进制文件有什么好处?
我一直在研究 Prolog 的 qsave_program 功能。我正在市场上寻找可以加速我的 Prolog 代码或可能允许与 C/C++ 集成的东西。 我用的是
在许多 Prolog 指南中,以下代码用于说明 Prolog 中的“失败求反”。 not(Goal) :- call(Goal), !, 失败。 不是(目标)。 然而,那些相同的教程和文本警告...
我正在尝试在序言中为此语法实现一个解析器: 线路 → 线路 ;线路 |线 行 → 行数,行 |数量 数字 → 数字 |数量 数字 → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 代码是: 解析...
我正在研究序言中的搜索问题,其中代理的目标是找到一些宝藏。在每个时间步骤,代理可以使用根据无向梯度排列的门在房间之间移动...
prolog 有一个任务听起来像这样: 编写一个 istree 谓词,仅当其参数是二叉树时才返回 true。 例子: ?- istree(t(a,t(b,nil,nil),nil))。 返回是 ?- istree...
任何人都可以检查这是否是一个完整的BS代码。显然它不起作用,因为我的答案是错误的,但我只是想知道这是在正确的轨道上还是完全不......
作为一个简单的练习,我编写了自己的排列。 该堆栈溢出: 没有(_, [], [])。 没有(A,[A|T],T)。 没有(A,[H | T],[H | G]):-没有(A,T,G)。 my_permutation([], []). 我的_排列...
我一直在尝试学习 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...