如何在每个循环中将元素添加到同一列表中,序言

时间:2019-03-09 17:49:28

标签: list loops recursion prolog

我有一个prolog程序,它接受用户输入,并使用该输入来搜索数据库以查找可能的匹配项。

    findall(Disease,symptom(Disease,Symptom),Possibles)

此代码可以正确地从一个用户输入中添加所有可能的疾病,但不会在下一个循环中添加到同一列表中。 例如,用户输入“发烧”,程序将创建所有可能疾病的列表。但是,当用户在下一个循环“头痛”上输入下一个输入时,列表上唯一的东西仍然是第一个输入中的疾病。在Prolog中是否可以在每个循环中将元素添加到同一列表中?

1 个答案:

答案 0 :(得分:1)

SWI-Prolog具有findall / 4,它附加到现有列表的第四个参数上。为了避免重复,目标(第二个参数)可以检查现有内容...