我想确保数组中的元素是唯一的。
4> A=[1,2, 3].
[1,2]
5> lists:nth(1, A) /= lists:nth(2, A).
true
6> lists:nth(1, A) /= lists:nth(2, A) /= lists:nth(3, A).
* 1: syntax error before: '/='
不幸的是' / ='当我将它扩展到三个或更多元素用例时,在提示#6中不起作用。
可接受的erlang语法是什么?
答案 0 :(得分:6)
我想正确的方法是从列表中进行设置,然后比较设置大小和列表长度。
A = [1,2,3].
S = sets:from_list(A).
length(A) == sets:size(S).
答案 1 :(得分:1)
如果你的数组有一个固定的,编译时已知的长度(那么你应该使用元组)并且你可以模式匹配它:
case A of %% Size = 3
{_,X,X} -> true;
{X,_,X} -> true;
{X,X,_} -> true;
{_,_,_} -> false
end
否则,我想你会去this very inefficient way。