0

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

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

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

4

1 回答 1

1

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

于 2019-03-10T05:41:43.253 回答