【问题标题】:How to Add an Element to the Same List Every Loop, Prolog如何在每个循环中将元素添加到同一个列表中,Prolog
【发布时间】:2019-07-31 11:48:18
【问题描述】:

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

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

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

【问题讨论】:

  • 请不要告诉我们您的代码和错误,而是向我们展示您的代码和查询以及输出和错误 - 原样。见minimal reproducible example

标签: list loops recursion prolog


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多