我有一个 double 列表,格式为A = [[1,2],[2,3],[3,4],[5,5]]
我想做的是创建一个函数,如果一个数字是任何 double 中的第一个数字,该函数将返回 true。因此,somefunction(7,A)
将返回 false,而 somefunction(5,A)
将返回 true。
我已经尝试过这个 somefunction(A,B) :- A == (B,_)
但这没有任何用处。
最佳答案
成员([N,_],As)。
但是这里有两点说明:
首先,您真的想要像 [[1,2],[3,4]]
这样的列表吗?如果您始终只有两个元素,请考虑使用对。即,使用仿函数 (-)/2
。它通常被写成Key-Value
。因此,您可以编写[1-2,3-4]
。常用的列表是pair列表,有keysort/2
,它只根据Key
排序。
其次,“名称查找”的常见习语如下:
..., P = (Name-Value), member(P, Dict), ...
这里值得注意的是,我们不需要对列表或我们拥有的任何其他元素使用“特殊”成员谓词。我们现在可以“按名称”或“按值”或两者搜索或不搜索...
关于list - 判断给定元素是否在 double 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10012749/