mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-16 07:14:07 +10:00
This required a massive cross-cutting rework to the scope system, multiple subtle bugfixes and relearning of the parser internals, but it does appear that functions are working correctly. A few caveats: for now, parameters are always constant, regardless of type, return values can't be specified, and some script tests have been written. Most importantly, a key feature is working: closures.
23 lines
236 B
Plaintext
23 lines
236 B
Plaintext
//closures
|
|
fn makeCounter() {
|
|
var counter: int = 0;
|
|
|
|
fn increment() {
|
|
return ++counter;
|
|
}
|
|
|
|
return increment;
|
|
}
|
|
|
|
var tally = makeCounter();
|
|
|
|
while (true) {
|
|
var result = tally();
|
|
|
|
print result;
|
|
|
|
if (result >= 10) {
|
|
break;
|
|
}
|
|
}
|