Nim/tests/tclosure.nim
Andreas Rumpf 08bc9ac03c version 0.7.6
2009-04-22 16:12:19 +02:00

25 lines
600 B
Nim

# 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 =
result = 0
for i in 0..n.len-1:
result = fn(result, n[i])
var
myData: array[0..9, int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
proc testA() =
var p = 0
map(myData, lambda (x: int): int =
result = x + 1 shl (lambda (y: int): int =
return y + 1
)(0)
inc(p), 88)
testA()
for x in items(myData):
echo x