summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-05-30 22:37:17 +0200
committerAraq <rumpf_a@web.de>2012-05-30 22:37:17 +0200
commit04300542da671e0250c67610bc87ef4f335d6902 (patch)
tree28683658623782a08c0a24b60cb0b1c35a5fd278 /tests
parentb5d8e8bfaa3683d7034f3fad45ce9024188ad92a (diff)
downloadNim-04300542da671e0250c67610bc87ef4f335d6902.tar.gz
fixes #127
Diffstat (limited to 'tests')
-rw-r--r--tests/run/tgenericprocvar.nim19
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)
+