gpt4 book ai didi

prolog - 袋子只给出一件元素,通过多件元素适合

转载 作者:行者123 更新时间:2023-12-02 20:47:18 25 4
gpt4 key购买 nike

此代码按预期工作:

 ?- bagof(R,member(r(R),[r(a),r(b),r(c),r(d)]),Rs).
Rs = [a, b, c, d].

但是我真正想要的类似的调用却没有:

?- bagof(R,member(r(_,R),[r(_,a), r(_,b), r(_,c), r(_,d)]),Rs).
Rs = [a]

; 给了我更多答案 - 但我想要 [a,b,c,d]。我的解决办法是什么?

最佳答案

bagof/3_ 不会直接聚集在一起。 setof/3 也是如此。

因此,要么给所有这些匿名变量命名并将它们声明为局部变量,使用辅助谓词,要么使用 library(lambda) :

?- bagof(R,R+\member(r(_,R),[r(_,a), r(_,b), r(_,c), r(_,d)]),Rs).
Rs = [a,b,c,d].

关于prolog - 袋子只给出一件元素,通过多件元素适合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38421409/

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