japl/tests/japl/for_with_function.jpl

87 lines
1.0 KiB
Plaintext

var y = 0; //a global to keep track of state
//does not need closures for this to work yet
fun next(x) {
if (x == 10)
{
y = y + 1;
x = 0;
}
if (y == 10)
return -1;
return x+y+1;
}
var i = 0;
for (; i != -1; i = next(i))
print(i);
// before using next
//output:0
// y = 0
//output:1
//output:2
//output:3
//output:4
//output:5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 1
//output:2
//output:3
//output:4
//output:5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 2
//output:3
//output:4
//output:5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 3
//output:4
//output:5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 4
//output:5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 5
//output:6
//output:7
//output:8
//output:9
//output:10
// y = 6
//output:7
//output:8
//output:9
//output:10
// y = 7
//output:8
//output:9
//output:10
// y = 8
//output:9
//output:10
// y = 9
//output:10
// y = 10