swi-prolog相关内容

用PROLOG打印数组/列表的最佳方式是不带逗号、方括号或空格?

所以我才刚刚开始使用Prolog。 假设我有一个数字列表,如下所示: X = [0,1,0,1,1,1,1,0] 并且希望将这些数字打印到屏幕上,而不使用逗号、空格或换行符,如下所示: ?- write(X). 01011110 到目前为止,我已经尝试使用write(X)。它只打印数组,我使用pprint模块尝试了print_term,但没有取得任何成功。 现在我有 ..
发布时间:2022-02-25 16:37:19 其他开发

json获取prolog谓词

我正在尝试在 prolog 中创建这个谓词: 谓词json_get/3可以定义为:json_get(JSON_obj, Fields, Result).当Result可恢复时为真按照Fields(列表)中的字段链,从 JSON_obj 开始.一个领域由 N 表示(其中 N 主编号 o 等于 0)对应于JSON 数组的索引. 请帮助我理解遵循字段链. 谢谢 编辑1: 当 ..
发布时间:2022-01-12 10:54:20 其他开发

将 aleph 与 SWI-prolog 一起使用:source_sink `library(aleph)' 不存在

我正在尝试使用 SWI-Prolog 导入 Aleph.当我运行我的程序时,我收到以下错误.导入 library(aleph) 需要做什么?顺便说一句,我已经为我的程序下载了 aleph.pl.这是我的测试程序,我知道库 aleph 一定有问题. :- use_module(library(aleph)).:- 阿列夫. 我得到了错误: 错误:c:/users/mac/desktop/swi ..
发布时间:2022-01-12 10:45:58 其他开发

Predsort/3 像 msort/2

我想知道是否可以使用 predsort/3 而不会丢失重复值?如果不是,那我应该如何对这个术语列表进行排序? 当前排序功能: compareSecond(Delta, n(_, A, _), n(_, B, _)):-比较(三角洲,A,B). 结果: predsort(compareSecond, [n(3, 1, 5), n(0, 0, 0), n(8, 0, 9)], X).X = ..
发布时间:2022-01-12 10:37:32 其他开发

为什么这个序言查询既真又假?

我的 SWI-Prolog 知识库包含以下两个事实: f(a,b).f(a,c). 现在如果我提出问题 ?- f(a,c).真的. 但是 ?- f(a,b).真的 ;错误的. 为什么 f(a,b) 既是真又是假?当知识库中有三个事实时,也会发生这种情况.如果我附加 f(a,d).到 KB,则 f(a,d) 为真(仅),但 f(a,b) 和 f(a,c) 既为真又为假.发生了什么事,我该 ..
发布时间:2022-01-12 10:23:25 其他开发

后继算术和的最佳绿色削减是什么?

为了了解 Prolog 中的绿色切割,我试图将它们添加到后继算术中 sum 的标准定义中(请参阅 这个查询的 SLD 树是什么?).这个想法是通过消除所有无用的回溯(即,没有 ... ; false)尽可能“清理"输出,同时在所有可能的参数实例化组合下保持相同的行为 - 所有实例化,一/二/三完全未实例化,以及所有变体,包括部分实例化的参数. 这是我在尝试尽可能接近这个理想时能够做到的(我承 ..
发布时间:2022-01-12 10:16:56 其他开发

在第一个答案之后,Prolog 显示错误“char_code/2: Cannot representation due to 'character_code'";

正常情况下,如果有的话,我们可以使用";"来显示下一个答案. 但如果我这样做,它会告诉我 错误:char_code/2:由于“character_code"而无法表示 我用";"代替";",prolog给了我提示 未知动作: : (h for help) 动作? 那么如果我输入";",可设计的答案就会一一显示. 有什么问题? 解决方案 用swipl-win.exe代替swi ..
发布时间:2022-01-12 10:09:37 其他开发

如何使用 SWI-Prolog ./2 功能?

需要使用 SWI-Prolog 的示例 ./2. 签名是 .(+Int,[]) 此外,如果有此运算符的名称,我会很高兴知道.搜索“."毫无意义. 最接近名称的是 SWI 文档第 F.3 节 算术函数 一个字符的列表:字符代码 我尝试了什么 ?- X 是 .(97,[]). 结果 错误:类型错误:预期为 `dict',发现 `97'(整数)错误:在:错误:[11] thro ..
发布时间:2022-01-12 10:09:27 其他开发

Prolog DCG 语法规则中的堆栈溢出:如何高效或懒惰地处理大型列表

我正在解析一个由一系列行组成的相当简单的文件格式,每行都有一些空格分隔的字段,如下所示: l 0x9823 1s 0x1111 3l 0x1111 12⋮ 我正在使用 SWI-Prolog.这是我目前拥有的 DCG: :- 咨询(库(pure_input)).load_trace(文件名,跟踪):-phrase_from_file(trace_file_phrase(痕迹),文件名).tra ..
发布时间:2022-01-12 09:54:55 其他开发

在 Prolog 中逐行读取文件

我想读取纯文本文件并将谓词应用于每一行(谓词包含执行输出的 write).我该怎么做? 解决方案 在 SWI-Prolog 中,最简洁的解决方案是编写一个 DCG 来描述“行"是什么,然后为每一行调用一个谓词.使用 library(pio) 将 DCG 应用于文件. 编辑:根据要求,考虑: :- use_module(library(pio)).行([])-->呼叫(eos),!. ..
发布时间:2022-01-04 08:05:18 其他开发

如何从Prolog的Json字符串中的字段中获取值?

我正在从事一个 Prolog 项目,该项目可以通过 omdb api 回答有关电影和连续剧的问题. 我用它来返回包含电影或系列信息的完整 Json 字符串: findMovie(X,Json):-atomic_list_concat(X, ',', Atom),uri_query_components(QS, [t=Atom]) %t 是电影的标题格式(原子(HREF),'http://w ..
发布时间:2021-09-03 18:31:57 其他开发

调试 Python 函数以删除 ANSI 代码

我的问题实际上有两个部分.我编写了一个函数,通过简单的替换从字符串中删除 ANSI 代码,但是该函数按原样返回字符串.我尝试过使用 pdb 进行调试,但结果没有意义,因为 Python 本身似乎存在故障.但是我对此表示怀疑,所以我试图弄清楚我在代码中没有看到什么错误.另外,我想知道是否有更好的方法来删除(可能还没有看到)ANSI 代码,而无需每次都修改函数. 这是一个让我感到困惑的 pdb ..
发布时间:2021-09-03 18:31:52 Python

SWI-Prolog 中的单元测试:模块内用户谓词的可见性

我想写单元SWI-Prolog(7.6.4 版)中的测试,以简化和自动化测试,目前仅以手动、临时方式完成. 要测试的文件包含复杂的算法,这些算法利用模块中的谓词,这些算法又对用户定义的谓词(用作输入数据或问题实例)进行操作.作为一个最小的例子,请考虑以下内容: 文件“graph.pl"(输入数据和算法): :- use_module(path).边(a,b).边(b,c).边(c,d ..
发布时间:2021-09-03 18:31:49 其他开发

如何在 Prolog GUI (XPCE) 编程中制作条形图(条形图)?

我正在尝试通过在 Proglog 库中使用 XPCE 来制作条形图.虽然我找到了一些材料,但我不能马上执行.代码如下. 条形图:-条形图(垂直).条形图(HV):-新的(W,图片),active_classes(类),长度(类,N),required_scale(类,规模),发送(W,显示,新的(BC,bar_chart(HV,0,比例,200,N))),forall(member(class( ..
发布时间:2021-09-03 18:31:46 其他开发