Skip to content

Closures

Functions are values. A function type is written fn(A) -> R. Named function parameters and results are always annotated. A lambda uses =>. Unannotated lambdas are only allowed where an expected function type supplies the parameter types.

module closures
pub fn run(f: fn(Integer) -> Integer, n: Integer) -> Integer {
f(n)
}
pub fn inc(n: Integer) -> Integer {
run(fn(x) => x + 1, n)
}