gpt4 book ai didi

prolog - 将查询的所有结果放在 Prolog 的列表中

转载 作者:行者123 更新时间:2023-12-03 22:17:48 25 4
gpt4 key购买 nike

我想知道如何制作一个谓词,将从某个查询中获得的所有结果(所以我得到一个结果并按分号直到我得到 False)放在一个列表中。

例如,如果我写 foo(X,[1,2,3]).在一些 Prolog 监听器中,假设结果是

X=[11];
X=[22];
False.

我想将所有这些结果放在一个列表中,因此会发生以下情况。
?-another_foo(X,[1,2,3]).
X=[[11],[22]].

another_foo 会以某种方式使用 foo 来创建一个包含 foo 的所有结果的列表。
我只是不知道如何。

最佳答案

使用内置谓词 findall/3 :

?-findall(X0, foo(X0, [1,2,3]), X).
X = [[11], [22]].

您可以定义您的 another_foo/2 :
another_foo(X, Input) :-
findall(X0, foo(X0, Input), X).

关于prolog - 将查询的所有结果放在 Prolog 的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4340022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com