List 获取要编译的Helper函数

List 获取要编译的Helper函数,list,prolog,List,Prolog,我试图通过一个知识库来解析这个列表,但是我很难让helper函数正常工作 我正在尝试创建的程序,输出一个来自知识库的任务列表,其中至少有两种任务类型,并且总经验值必须低于临界值。 allquest的格式为: allquest(Questtext、QuestType、ExpvalueofQuest) 总的来说,规则集的逻辑是,它接受一个列表作为参数,遍历该列表,跟踪每个任务的exp总数,一旦列表被完全遍历,它将根据一些数字检查总数,以确保其“正常”,然后返回 然而,如果我输入了一个未实例化的列表[

我试图通过一个知识库来解析这个列表,但是我很难让helper函数正常工作

我正在尝试创建的程序,输出一个来自知识库的任务列表,其中至少有两种任务类型,并且总经验值必须低于临界值。 allquest的格式为: allquest(Questtext、QuestType、ExpvalueofQuest)


总的来说,规则集的逻辑是,它接受一个列表作为参数,遍历该列表,跟踪每个任务的exp总数,一旦列表被完全遍历,它将根据一些数字检查总数,以确保其“正常”,然后返回

然而,如果我输入了一个未实例化的列表[A],它应该返回满足我需求的列表组合

如果CUTOFF=3000,代码应该是这样工作的

?-questCheckH([A]).

water for village,get book for elder
;water for village, kill 20 birds
;get book for elder, water for village
;get book for elder, kill 20 birds, water for village
;kill 20 birds, water for village
;kill 20 birds, get book for elder, water for village

我知道我需要在questCheckH中加入一个附加谓词,但不确定如何使用我需要的谓词。

什么是“Expvalue”?是“经验价值”吗?“…并且必须有一个总的经验值”——谁?谁必须拥有它?“还有我的计划……”也没有,请用自己的问题问每件事。你的示例查询是什么?它的预期输出是什么?写下来,即使你还没有定义所有的谓词(但要解释你正在使用的每个谓词的用途)。注意,如果你问的问题“不受欢迎”,那么就有一个问题禁令。你需要让你的问题发挥作用,否则你将面临被系统禁止的风险。删除它们不是一种选择——它被视为对禁令的不良行为。欢迎来到StackOverflow.:)为规则编辑“总的来说,规则集的逻辑是它将列表作为参数接受”。规则集不接受任何内容,只是接受而已。解释它是什么。举一个具体的例子。“接受列表作为参数”什么列表?那张单子是什么?“反复浏览列表”不要告诉我们它“做什么”,告诉我们你想从中得到什么。就像在“
my_length(ground_list,its_length)
中一样,获取一个完全定义的列表
ground_list
,找出它的长度,并设置
its_length
以保持该长度作为一个值;
its_length
在调用
my_length
之前应该是一个未实例化的变量。”。如果是的话_
?-questCheckH([A]).

water for village,get book for elder
;water for village, kill 20 birds
;get book for elder, water for village
;get book for elder, kill 20 birds, water for village
;kill 20 birds, water for village
;kill 20 birds, get book for elder, water for village