나는 그들의 요소가 동일한 지 여부를 확인해야 두 개의 목록이 현재두리스트가 동일한 지 비교하는 관용적 인 방법은 무엇입니까? (. 얕은하지 체크, 내가 <code>Kernel.==/2</code>에 의존 할 수 요소)
, 내가 가진 :
[l1 -- l2] ++ [l2 -- l1] == []
그것은 조금 overcomplicated 보인다 나에게는 꽤 관용적이지 않다. 내가 놓친 게 있니? 평등을 위해 두 목록을 비교하는 더 좋은 방법이 있습니까? 이것은 당신의 Kernel.--/2
기반 솔루션을 O(n^2)
대신 O(n log n)
시간에 실행됩니다
Enum.sort(l1) == Enum.sort(l2)
: 내가 생각할 수있는
"얕은 체크"가 아니라는 것을 의미합니까? 'l1 == l2'가 작동하지 않는 예제를 줄 수 있습니까? – Dogbert
@ 도그 버트'~ w | a b | a == ~ w | b a | a'. "얕지 않다"는 말은 재귀 적으로 요소의 내용을 비교하지 않는다는 의미입니다. – mudasobwa
'MapSet.new (l1) |> MapSet.equal? (MapSet.new (l2))'와 유사합니까? – Dogbert