我有一个这种形式的列表:
[node(2,5,4,3),node(3,5,4,3),node(2,10,12,4),node(5,2,2,2)]
我需要一个返回第一个值为 2 的所有节点的方法。 然后:
[node(2,5,4,3),node(2,10,12,4)]
我尝试了不同的方法但没有成功。
提前致谢。
使用此代码:
| ?- findall(
node(2,X,Y,Z),
member(node(2,X,Y,Z),[node(2,5,4,3),node(3,5,4,3),node(2,10,12,4),node(5,2,2,2)]),
Nodes).
Nodes = [node(2,5,4,3),node(2,10,12,4)]
yes