20 lines
334 B
Plaintext
20 lines
334 B
Plaintext
# Tests closures
|
|
import std;
|
|
|
|
|
|
fn makeClosure(n: int): fn: fn: int {
|
|
fn inner: fn: int {
|
|
fn deep: int {
|
|
return n;
|
|
}
|
|
return deep;
|
|
}
|
|
return inner;
|
|
}
|
|
|
|
|
|
var closure = makeClosure(38);
|
|
var inner = closure();
|
|
print(inner()); # 38
|
|
print(inner()); # 38
|
|
print(makeClosure(420)()()); # 420 |