diff options
Diffstat (limited to 'tests/run/tgenericprocvar.nim')
-rw-r--r-- | tests/run/tgenericprocvar.nim | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/run/tgenericprocvar.nim b/tests/run/tgenericprocvar.nim index 7fdc58ca4..088909d58 100644 --- a/tests/run/tgenericprocvar.nim +++ b/tests/run/tgenericprocvar.nim @@ -1,5 +1,5 @@ discard """ - output: "0false" + output: "0false12" """ # Test multiple generic instantiation of generic proc vars: @@ -17,3 +17,20 @@ proc threadProcWrapper[TMsg]() = threadProcWrapper[int]() threadProcWrapper[bool]() +type + TFilterProc[T,D] = proc (item: T, env:D): bool + +proc filter[T,D](data: seq[T], env:D, pred: TFilterProc[T,D]): seq[T] = + result = @[] + for e in data: + if pred(e, env): result.add(e) + +proc predTest(item: int, value: int): Bool = + return item <= value + +proc test(data: seq[int], value: int): seq[int] = + return filter(data, value, predTest) + +for x in items(test(@[1,2,3], 2)): + stdout.write(x) + |