Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。
我需要在序言中删除列表的一个元素,但只有当您将列表放入咨询中时它才有效,例如: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 是否可以
在 Prolog 中, [a,b,c] = [a,b,c | []] 但是,我对 [a, b, c | 的头部] 感到困惑[]] 是? 如果 [a, b, c] = [a, b, c | []] 为什么事实并非如此: [a,b,c] = [a,b,c | []] = [[a,b,c ...
Prolog 中的文字和谓词有区别吗? 而且,如果我没记错的话,文字与真值相关,但术语则不然。可是,为什么我们还是说每...
我预先道歉,因为我怀疑这是一个基本的序言问题。 我有以下知识库来定义家谱 男(詹姆斯1)。 男(詹姆斯2)。 男(查尔斯1)。 男(查尔斯2)。 男(乔治...
https://i.ibb.co/q0zXPGv/qe.jpg 在Prolog中,我们可以引入一个关于边缘方向的谓词来表示上图: 边(s,a)。 边(a,b)。 我们进一步引入一个关于节点的谓词
我需要序言中的代码。 假设我们在家谱中定义了一些人。 如果他们具有同一代并且谁是同一祖先,我如何编写一个函数来获取两个人的姓名和过程......