prolog 相关问题

Prolog是最常用的逻辑编程语言。它通过按时间顺序回溯和通过统一的模式匹配来支持非确定性编程。

如何查找列表中的某些特定节点/元素?

我有一个这样形式的列表: [节点(2,5,4,3),节点(3,5,4,3),节点(2,10,12,4),节点(5,2,2,2)] 我需要一个方法来返回第一个值为 2 的所有节点。 然后: [节点(2,5,4,3),节点(2,10,...

回答 2 投票 0

Prolog 列表列表中列表的最大长度

我的目标是返回列表列表中最长的列表。例如:[[1,2,3],[1,2]]-> [1,2,3]。 我写了这个 list_max_len([L],L). list_max_len([X,Y|T],L):- 长度(X) >=长度(Y),

回答 1 投票 0

swi-prolog 中的 Prolog 类型定义

在可视化序言中,序言程序中有“域”部分,您可以在其中定义类型。 swi-prolog中有类似的东西吗? 在可视化序言中,类型定义如下: 域 新类型 =

回答 3 投票 0

在SWI-Prolog中,如何找到最大化或最小化某些原子的解决方案?

我有兴趣使用 Prolog 来找到最大化某些输出原子的解决方案。例如,有 10 个谓词: 解决方案(1)。 解决方案(2)。 解决方案(3)。 解决方案(4)。 解决方案(5)。 所以...

回答 1 投票 0

Prolog 未知变量评估

考虑一下: 列表长度([],0)。 list_length([H|T], N) :- list_length(T, N - 1)。 它不会给出编译错误,但不起作用。 我的想法是: 假设我调用 list_length([1], N) 我们问...

回答 1 投票 0

使序言谓词具有确定性

我编写了一个谓词 shuffle/3,它生成两个列表的“洗牌”。当第二个和第三个参数被实例化时,第一个参数变成一个列表,其中包含两个参数的所有元素

回答 3 投票 0

使用 Prolog 通过递归求出数字的除数

我想在Prolog中打印一个数字的除数,我编写了以下代码: find_and_display_divisors(N) :- write('除数'), write(N), write(':'), nl, find_divisors(N, 1)。

回答 1 投票 0

Picat 中存在评估构造函数还是更像 Prolog?

我想在Picat中快速创建一个结构。但在创建结构时应评估结构的组成部分。到目前为止,我尝试过,当组件是

回答 2 投票 0

HiLog 术语在现代 Prolog 中仍然有用吗?

Hilog 项(即具有函子任意项的化合物)仍然被视为 XSB Prolog(或任何其他 Prolog)中的强大功能吗? 目前有很多XSB项目在使用这个功能吗...

回答 2 投票 0

Prolog 模块的 ISO 标准 (ISO/IEC 13211-2) 有哪些(感知到的)缺点?

Prolog 模块的 ISO 标准并未被广泛采用。我发现唯一可以实现它们的系统是 Amzi!序言。大多数系统没有采用ISO标准的原因是什么...

回答 1 投票 0

CLP(FD)中的具体化谓词可以用来检查逻辑表达式的相等性吗?

根据文档(A.9.12节),CLP(FD)约束如#>、#=、#/\等可以具体化。 约束#<==>/2 应该是 真当且仅当 P 和 Q 相等 手风琴...

回答 1 投票 0

Prolog - 替换列表元素

所以我有一个程序,它有一个谓词,用给定的新元素替换列表中某些元素的第一次出现,并生成一个新列表。我是这样做的: 更改Fst(旧E,[旧E...

回答 2 投票 0

在 Prolog 中获取查询的具体答案时遇到问题

Prolog 似乎无法返回查询的某些特定答案。我在 SWI-Prolog 中编写了一段简短的代码,其中我尝试检查给定的二进制向量 C 是否可以

回答 1 投票 0

Prolog 列表:逗号和 | 的组合

在 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 ...

回答 1 投票 0

Prolog:文字与谓词,文字与术语

Prolog 中的文字和谓词有区别吗? 而且,如果我没记错的话,文字与真值相关,但术语则不然。可是,为什么我们还是说每...

回答 1 投票 0

Prolog 比较返回 False

我预先道歉,因为我怀疑这是一个基本的序言问题。 我有以下知识库来定义家谱 男(詹姆斯1)。 男(詹姆斯2)。 男(查尔斯1)。 男(查尔斯2)。 男(乔治...

回答 2 投票 0

如何回答这个关于路径的序言问题?

https://i.ibb.co/q0zXPGv/qe.jpg 在Prolog中,我们可以引入一个关于边缘方向的谓词来表示上图: 边(s,a)。 边(a,b)。 我们进一步引入一个关于节点的谓词

回答 1 投票 0

prolog中的代码可以找到两个同辈的人?

我需要序言中的代码。 假设我们在家谱中定义了一些人。 如果他们具有同一代并且谁是同一祖先,我如何编写一个函数来获取两个人的姓名和过程......

回答 2 投票 0

prolog - 解决魔方问题的 BFS 算法

我想知道如何对作为我函数的输入参数的魔方运行 BFS 算法。到目前为止,我已经创建了函数rotateUp(cubeIn,cubeOut),rotateDown(cubeIn,cubeOut2),rotateFront(

回答 1 投票 0

如何将整数(解)列表转换为连续区间列表

我使用CLP(FD)和SWI-Prolog编写了一个CSP程序。 有些约束看起来像 Xi mod N #= 0,所以我必须为每个变量 Xi 调用 res(Xi,Li) (使用 res(X,L) :- setof(X, indomain(X), L))。 ..

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.