From a274f3bf5be3fc35f1538e5aab0e32fb9ed2ff82 Mon Sep 17 00:00:00 2001 From: Araq Date: Sat, 19 Nov 2011 15:45:51 +0100 Subject: got rid of 'accept' dir in the tests --- tests/run/tclosure.nim | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 tests/run/tclosure.nim (limited to 'tests/run/tclosure.nim') 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 + + + + -- cgit 1.4.1-2-gfad0