我有一个n个列表的列表,想要找到它们的交集,例如:
[[1 2 3 4][0 4][4 1]]
[4]
我找到了一个代码here来查找两个列表的交集:
to-report intersect [a b]
report (filter [ member? ? b ] a)
end
但我无法弄清楚如何将这个概念扩展到多个列表。
答案 0 :(得分:2)
哦!对于NetLogo不太受欢迎的reduce
函数来说,这是一个非常好的用例。
鉴于您上面的intersect
记者:
print reduce intersect [[1 2 3 4][0 4][4 1]]
会给你:
[4]
reduce
将intersect
应用于第一个和第二个子列表,然后将intersect
应用于该结果和第三个子列表,依此类推您在主列表中的子列表......