问题标签 [prolog-setof]

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 回答
35696 浏览

prolog - 如何在 Prolog 中找到目标的所有解决方案?

我有谓词 P1 一个接一个地返回值,如下所示:

我还有另一个谓词 P2:

如何找到 的所有值RETURN并将它们分配给LIST

0 投票
1 回答
2615 浏览

prolog - 序言中的存在限定符,使用 setof / bagof

我有一个快速的问题。在序言中使用 setof 的存在限定符(即 ^)。

使用 SICStus 似乎(尽管许多网站声称),S 确实似乎在下面的代码中被量化了(使用沼泽标准,事实之母/事实之子,我没有包括在这里):

我使用以下方法检查统一:

所以下面的代码,与存在运算符似乎没有什么区别:

任何想法为什么会这样?那么你需要统一器的情况是什么?

谢谢!

0 投票
2 回答
2915 浏览

prolog - 重复的解决方案

我在尝试获取一些代码以返回对我的查询的唯一答案时遇到问题。例如,定义

然后运行

给出输出:

如您所见,这两种解决方案是相同的。有没有办法让PROLOG返回独特的解决方案,即 给出输出:

0 投票
2 回答
2635 浏览

prolog - 序言中的集合

prolog中setof的源代码是什么?

0 投票
1 回答
250 浏览

prolog - Prolog 列表中的第一个查询和复制元素

我是 Prolog 的新手。我在下面编写了基本代码。

我想做两件事。首先,当我查询为

prolog 向我展示的第一件事是

但我想在第一次查询时查看列表中的所有元素。

IE

我想要的第二件事是避免重复列表中的元素。

例如;

我不想要这样一个最后的清单。

我该如何解决这两个问题?谢谢。

0 投票
2 回答
63 浏览

prolog - 有没有一种方法可以在没有序言的情况下有效地从事务中获取项目集?

很抱歉问这个问题,但自从我在 Prolog 中编程以来已经很多了。我想我习惯了命令式范式。:-(

我正在尝试从 Prolog 关系中获取项集:

然后,如果我咨询 main(X) 我想获得:

我只是想不出一个正确的方法来做到这一点。

如果我能得到一个指针或一点帮助,我将非常感激。

最好的,

B.

0 投票
2 回答
910 浏览

prolog - 列表中的最大出现次数

我正在尝试编写一个 Prolog 函数,该函数给定一个列表,返回在该列表中重复次数最多的元素,例如:

['a', 'a', 'b', 'c', 'b'] 应该返回 ['a', 'b'] ['c', 'a', 'a', 'c', ' b', 'c', 'b'] 应该返回 ['c'] 等等...

我正在尝试使用另一个函数(计算列表中存在的次数(计数列表),但我没有得到任何帮助。请帮忙?

0 投票
3 回答
949 浏览

recursion - Prolog递归跳过相同的结果

我的代码运行,但问题是它多次显示相同的结果。这是我的代码:

在 prolog 中执行时的结果:

我如何避免同样的结果?我尝试使用在这里找到的其他方法:

但我未能将它应用到我的代码中。请帮忙。

0 投票
1 回答
65 浏览

database - 在这种特殊情况下,如何使用retract 删除重复?

我想找到一种方法来删除某些事实,例如断言每个(天)事实必须每天只有一个房间和插槽示例:我们可以有day(sat,1,_,c6301,_,_,_,_)day(sat,1,_,c6302,_,_,_,_)但我们不能再出现day(sat,1,_,c6301,_,_,_,_).

0 投票
1 回答
197 浏览

prolog - setof/3 和 NAF

所以我有一组事实:

我需要定义一个谓词good_standing(Student)来确定他是否参加StudentA他参加的每一堂课。我必须使用两种不同的方法:

  1. 利用setof/3
  2. 使用 NAF

1日。我试图弄清楚 get Result_list:从他参加的每节课中获得 A 的一组学生。然后调用member(Student, Result_list). 但我不知道要得到什么,Result_list因为语法对我来说有点奇怪。