diff options
author | def <dennis@felsin9.de> | 2014-07-14 17:56:19 +0200 |
---|---|---|
committer | def <dennis@felsin9.de> | 2014-07-14 17:56:19 +0200 |
commit | 68c3c8ebfafbcd169bceaf2bebed8f7af8dbf124 (patch) | |
tree | a6f9e48881ef7dad522425629163b210faba839c /lib/pure/collections/sets.nim | |
parent | 5bfea58ffb9fd731131bbbd3f3d077cb69c5f419 (diff) | |
download | Nim-68c3c8ebfafbcd169bceaf2bebed8f7af8dbf124.tar.gz |
More effificent TSet difference
Diffstat (limited to 'lib/pure/collections/sets.nim')
-rw-r--r-- | lib/pure/collections/sets.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/pure/collections/sets.nim b/lib/pure/collections/sets.nim index 2f0c4d3d2..f1eed0004 100644 --- a/lib/pure/collections/sets.nim +++ b/lib/pure/collections/sets.nim @@ -169,9 +169,10 @@ proc intersection*[A](s1, s2: TSet[A]): TSet[A] = proc difference*[A](s1, s2: TSet[A]): TSet[A] = ## returns a new set of all items that are contained in `s1`, but not in `s2` - result = s1 - for item in s2: - if contains(result, item): excl(result, item) + result = initSet[A]() + for item in s1: + if not contains(s2, item): + incl(result, item) proc symmetricDifference*[A](s1, s2: TSet[A]): TSet[A] = ## returns a new set of all items that are contained in either |