问题标签 [gnu-prolog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
92 浏览

prolog - Prolog中的(in)方程系统的意外结果

我正在使用 GNU Prolog。如果我问:

我得到:

但是,由于 Y!=2 和 X=Y+1,我也期望 X!=3。

这种行为是由于什么原因造成的?

0 投票
1 回答
32 浏览

prolog - 在 Gnu Prolog 中通过布尔 OR 组合两个事实

我对 Prolog 完全陌生。所以请原谅这个可能非常简单的问题:我有一些事实,比如

在一个文件中likes.pl。现在我正在尝试检查是否paul喜欢cars bikes,所以我尝试了 GNU Prolog 的 REPL:

但我得到“未捕获的异常:...”。显然我做错了什么。- 如何在 GNU Prolog 中将两个事实与 AND 结合起来?

0 投票
1 回答
134 浏览

prolog - 使用 Bash 脚本自动测试 Prolog 文件

我正在为学生作业评分,并希望自动在学生数据库上运行查询,并将这些查询的结果打印到文件中。我遇到的问题是我希望运行多个查询,但找不到一种方法来添加我希望作为命令行参数的所有查询。

相关文件


学生提交 Prolog 文件:

我无法向您展示这段代码,但学生们必须使用 Prolog 解决 4 个问题,并且我可以访问这些文件。


hw4_autograde.sh注意:编译器已更改为 SWI-prolog,而不是 gprolog。

在此处输入图像描述


testcases.txt: 这些是我希望运行的测试用例。它们包括对学生解决的 4 条规则/“功能”的各种调用。

在此处输入图像描述


我能够创建并附加到输出文件,但我需要先让我的 bash 脚本工作,然后可以添加所需的代码来做到这一点。任何帮助或正确方向的观点都是最有帮助的。

我试图仔细检查这篇文章,但我很难让它发挥作用:

https://lists.gnu.org/archive/html/users-prolog/2013-12/msg00004.html

谢谢你。


编辑:

Paulo Moura 在评论中描述的解决方案解决了这个问题,但是,在使用 logtalk 测试器时,我遇到了在提交中的子目录中使用多个 prolog 文件的问题。我曾经在学生文件正常工作的情况下获得输出,但现在所有测试都说崩溃了,当我过去通过或失败时:这是我当前运行时得到的屏幕截图logtalk_tester -p swi -t 60

在此处输入图像描述

以下是学生子目录中内容的屏幕截图:

在此处输入图像描述

这里是tests.lgt

这是tester.lgt

0 投票
1 回答
54 浏览

prolog - 在 GNU Prolog 中编译之前的术语扩展

给定以下指令+谓词元组:

我如何告诉gplc将此代码转换为

在编译之前?old_payload可以递归定义。

0 投票
1 回答
54 浏览

prolog - 如何从 SWI-Prolog 中的 tuples_in/2 转换为 GNU Prolog 中的 fd_relation/2?

以下示例代码使用 SWI-Prolog

Gnu Prolog 有一个内置的 clp(fd) 求解器。语法基本相同,但我们不需要包含库,并且 tuples_in/2 谓词由 GNU Prolog 谓词 fd_relation/2 处理。

这不会像写的那样工作,因为 fd_relation/2 需要一个变量列表。我得到一个 type_error(fd_variable),大概是因为 Ps 是一个 var 列表。

显示的示例应该产生这个

在 GNU Prolog 中如何实现呢?

0 投票
0 回答
44 浏览

prolog - Prolog 如何在 pl 文件中使用 get_code

我想打印一个字符的 ASCII 值。我正在使用 GNU 序言。

我在 1 小时内尝试的一切都没有奏效。所以我来到这里,我看到了这个帖子:Prolog - get_code/1 without prompt

但是,对于输入中的每个字符,它写 10。这是我的代码:

事实上,我的目标是取一个 ASCII 字符的值,然后将大写字母转换为小写字母。我需要获取 tha ascii 值,然后添加 32 以获得 lower_case 值。

0 投票
2 回答
79 浏览

prolog - 如何使用 fd 求解器确定列表中的哪些元素可以求和为给定数字?

给定一个可能的和数列表,我想确定哪些(如果有的话)可以形成一个给定的总和。例如,使用 [1,2,3,4,5],我可以将 9 与 [4,5]、[5,3,1] 和 [4,3,2] 相加。我正在使用 GNU Prolog 并且有类似以下的东西不起作用

我认为主要问题是我没有正确表示对总和的约束?或者也许是别的东西?

0 投票
1 回答
43 浏览

prolog - 未捕获的异常:错误(实例化错误,(是)/ 2)

我正在制作一个程序来识别字符串中是否只有字母和空格,但它给了我一个错误,我无法解决它。

未捕获的异常:错误(实例化错误,(是)/ 2)

我认为错误仍然存​​在于 validazione_lista 但我无法解决它。

0 投票
1 回答
55 浏览

prolog - GNU PROLOG 中的最短路径

需要PROLOG的帮助,如果有人可以指导任何问题: 介绍:我有一个供水网络,两个水源(河流和湖泊)。三个存储库。三个自动采样站。

我将原始数据转换为 PROLOG 信息。

现在我需要写下一段代码来找到以下内容:

1.每个点的水源是什么 - 河流或湖泊(假设水源最近)。用户输入点数。答案是水的来源。

  1. 从每个点到每个源的最短路线是什么。用户输入点数。答案是两个列表。

  2. 从水源到每个点的总消耗量是多少。用户输入点数。答案是总消费。

  3. 假设从监测站收到水质警报,应在供水处停止哪些节点。