thp-lang.org/md/learn/functions/lambdas.md
2023-10-01 20:41:38 -05:00

600 B

Lambdas / Anonymous functions

Anonymous function

fun(Int x, Int y) -> Int {
    x + y
}


numbers.map(fun(x) {
    x * 2
})

Closure types

By default closures always capture variables as references.

var x = 20

val f = fun() {
    print(x)
}

f()     // 20

x = 30
f()     // 30

You can force a closure to capture variables by value.

fun(parameters) clone(variables) {
    // code
}
var x = 20

val f = fun() clone(x) {
    print(x)
}

f()     // 20

x = 30
f()     // 20

Lambdas

numbers.map {
    it * 2
}