问题标签 [prolog-dif]
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.
list - Prolog:用另一个列表替换列表中的元素
对于以下查询(以及以下定义的谓词),我得到了一个意想不到的答案:
第一个结果是我想要的。第二个不想...
我怎样才能防止第二个?可能是通过添加!
某处?
prolog - 在列表中计数。帮助我理解这段代码
我发现了一个3 年前的问题,它可以帮助我计算列表中变量的出现次数。这个问题有下面的答案。该代码有效。但我不明白怎么做,有人可以帮我理解这个吗?
这是我找到的代码的答案,用引号括起来是答案的一部分:
'但是请注意,第二个参数 X 应该被实例化。因此,例如 count([2,23,3,45,23,44,-20],23,C) 会将 C 与 2 统一起来。如果您想要使用每个元素的计数'
'那么你得到'
我对Prolog很陌生,我只了解这段代码的一部分,就是这个
我将不胜感激整个事情的解释,尤其是 Y 是如何打印的。
prolog - 使用 Prolog 定义部门和员工关系
我正在通过旧考试并尝试检查我的工作。我附上了图片,但文字如下:
我们想扩展一个处理公司员工的程序。
对于每个部门,有一个事实
department(Id, Manager, Groups)
定义了部门Id
的名称, ,其经理的姓名,Manager
,以及构成该部门的工作组或其他部门的列表,Groups
。对于每个工作组,都有一个事实 ,
group(Id, Leader, Participant)
定义Id
了该组的唯一名称 , ,该组Leader
的经理或领导者,以及一个Participant
包含该组成员名称的列表 , 。个人可以是一个或多个工作组的成员,或者“只是”经理。同一个人可以是多个小组/部门的领导或经理。领导者被认为是他们领导的工作组的一部分,而等级较高的经理不会自动成为任何工作组的成员。
例如,程序的数据库可能如下所示:
定义这些谓词!
coworker(Name, Department, Group)
如果一个人 ,Name
属于某个部门 ,Department
和某个工作组 ,则为真的谓词Group
, (none
如果该人不属于任何工作组,则使用)。
leader(Name, GroupId)
如果一个人Name
是某个工作组的领导者,则谓词为真GroupId
。
manager(Name, Id)
如果某人是某个部门的经理,Id
或者名称为 的工作组的领导者,则谓词为真Id
。请考虑个人通常可以直接成为工作组的成员,也可以隐含地成为多个级别的部门成员!
我的代码如下:
我已按照以下建议修改了我的代码:
list - 检查任何元素的频率是否超过限制
我想解决一个问题,即我有一个 Prolog 元素列表。如果任何一个元素频率大于N
则返回 false。我的期望如下。
我有一个获取特定元素频率的代码。任何想法的问题。
list - Prolog:检查列表中的重复项
编写一个谓词
/li>allDistinct/1
,其参数是(符号的)列表,如果列表中的所有符号都不同,则该谓词成功。
prolog - 我如何为prolog创建一个兄弟谓词?
我被告知要创建一个兄弟谓词来确定兄弟是否有兄弟姐妹。Brother(B, S) :-
. 我知道您需要确定他们是否有相同的父母,但我不知道该怎么做。
这是我拥有的定义父母、祖父等的文档。我需要创建一个兄弟谓词,它作为兄弟(B 是兄弟,S 是兄弟姐妹)。例如兄弟(利亚姆,乔治亚州)。利亚姆是乔治亚的兄弟应该是真的
list - 非成员规则在 Prolog 中无法按预期工作
我正在尝试在 Prolog 中创建一个迷宫程序,其目的是找到一条从迷宫开始到迷宫中心点 m 的路线。迷宫由使用四种颜色之一连接的正方形组成:蓝色、绿色、紫色或橙色。从起点到中心的路线遵循四种颜色的重复模式。
我创建了以下代码:
出于某种原因,代码没有按预期工作,我不确定为什么。我觉得这与否定(不是成员)规则有关,但有人可以告诉我我做错了什么吗?
path - Trying to obtain cost for a given path
I am new to Prolog
I am trying in Prolog a rule that gives me a given path from a node to another and also gives me the total weight of the path.
I have succeeded to get all the edges of the path but I am not able to show the weight of the path. I debbuged it and it is seen that variable S adds up to the whole weight of the path but in the way back, deletes all the elements. My idea is to add the total weight to P.
Code:
list - 如何从 Prolog 的列表中删除每个项目
我想定义一个关系del_all(X, L, L1)
,用于从 list 中删除所有项目X
(如果有)L
。
示例查询:
list - Prolog比较列表的元素
当给定一些输入列表时,我想构建一个新列表,它应该:
- 始终在新列表前面添加 h
- 比较输入列表的每两个连续元素,如果它们相等,则将 y 附加到新列表中,如果不相等,则附加 x。
例子:
到目前为止,这是我的代码:
但它不能正常工作。
我怎样才能使它正确?