29 lines
380 B
Plaintext
29 lines
380 B
Plaintext
# Tests first class functions
|
|
|
|
import std;
|
|
|
|
|
|
fn outer: fn (n: int): int {
|
|
fn inner(n: int): int {
|
|
return n;
|
|
}
|
|
return inner;
|
|
}
|
|
|
|
|
|
|
|
fn getAdder(a, b: int): fn: int64 {
|
|
var x = a;
|
|
var y = b;
|
|
fn adder: int {
|
|
return x + y;
|
|
}
|
|
return adder;
|
|
}
|
|
|
|
|
|
print(outer()(1)); # 1
|
|
var a = 1;
|
|
var b = 2;
|
|
var adder = getAdder(a, b);
|
|
print(adder()); # 3 |