fixed a bug in map for sets

This commit is contained in:
Simon Hafner 2014-02-10 13:02:47 -06:00
commit e8c87d070a
2 changed files with 7 additions and 3 deletions

View file

@ -242,6 +242,6 @@ proc `<=`*[A](s, t: TSet[A]): bool =
proc `==`*[A](s, t: TSet[A]): bool = proc `==`*[A](s, t: TSet[A]): bool =
s.counter == t.counter and s <= t s.counter == t.counter and s <= t
proc map*[A, B](data: TSet[A], op: proc (x: A): B {.closure.}): TSet[A] = proc map*[A, B](data: TSet[A], op: proc (x: A): B {.closure.}): TSet[B] =
result = initSet[B]() result = initSet[B]()
for i in data: result.incl(op(i)) for item in data: result.incl(op(item))

View file

@ -1,13 +1,17 @@
discard """ discard """
output: '''true''' output: '''true
true'''
""" """
import sets import sets
var var
a = initSet[int]() a = initSet[int]()
b = initSet[int]() b = initSet[int]()
c = initSet[string]()
for i in 0..5: a.incl(i) for i in 0..5: a.incl(i)
for i in 1..6: b.incl(i) for i in 1..6: b.incl(i)
for i in 0..5: c.incl($i)
echo map(a, proc(x: int): int = x + 1) == b echo map(a, proc(x: int): int = x + 1) == b
echo map(a, proc(x: int): string = $x) == c