diff options
author | Araq <rumpf_a@web.de> | 2011-11-19 15:45:51 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-11-19 15:45:51 +0100 |
commit | a274f3bf5be3fc35f1538e5aab0e32fb9ed2ff82 (patch) | |
tree | 95dc5bf7fe3716a3ab266f78094fccce38c94ccf /tests/run/tclosure.nim | |
parent | d0772feb08baaea12bfdad0a7c20a41733f977bd (diff) | |
download | Nim-a274f3bf5be3fc35f1538e5aab0e32fb9ed2ff82.tar.gz |
got rid of 'accept' dir in the tests
Diffstat (limited to 'tests/run/tclosure.nim')
-rwxr-xr-x | tests/run/tclosure.nim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/run/tclosure.nim b/tests/run/tclosure.nim new file mode 100755 index 000000000..d7c0ec0e3 --- /dev/null +++ b/tests/run/tclosure.nim @@ -0,0 +1,33 @@ +discard """ + file: "tclosure.nim" + output: "2 4 6 8 10" + disabled: true +""" +# Test the closure implementation + +proc map(n: var openarray[int], fn: proc (x: int): int {.closure}) = + for i in 0..n.len-1: n[i] = fn(n[i]) + +proc foldr(n: openarray[int], fn: proc (x, y: int): int {.closure}): int = + for i in 0..n.len-1: + result = fn(result, n[i]) + +var + myData: array[0..4, int] = [0, 1, 2, 3, 4] + +proc testA() = + var p = 0 + map(myData, proc (x: int): int = + result = x + 1 shl (proc (y: int): int = + return y + p + )(0) + inc(p)) + +testA() +for x in items(myData): + write(stout, x) +#OUT 2 4 6 8 10 + + + + |