diff options
Diffstat (limited to 'tests/run/tclosure.nim')
-rwxr-xr-x | tests/run/tclosure.nim | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/tests/run/tclosure.nim b/tests/run/tclosure.nim deleted file mode 100755 index d9e7b8ee4..000000000 --- a/tests/run/tclosure.nim +++ /dev/null @@ -1,47 +0,0 @@ -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]) - -proc each(n: openarray[int], fn: proc(x: int) {.closure.}) = - for i in 0..n.len-1: - fn(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() - -myData.each do (x: int): - write(stout, x) - -#OUT 2 4 6 8 10 - -type - ITest = tuple[ - setter: proc(v: Int), - getter: proc(): int] - -proc getInterf(): ITest = - var shared: int - - return (setter: proc (x) = shared = x, - getter: proc (): int = return shared) - |