Comment on page
Functions
Declaring functions in Loop is easy, you just use the
fn
keyword accompanied by it's arguments and function body. For example:fn(int one, int two, int three) {
// Body
}
If you'd like to call a function again (which is it's primary use-case of course). Then you can assign a function to a variable, which is as easy it sounds.
// Notice the "fn :="
added := fn(int one, int two, int three) {
return one + two + three
}
// Now you can call the function like this:
adder(1, 2, 3) // Returns 6
Named functions differ from anonymous functions in that it is possible to recursively call them. Creating a named function is easy and just requires providing a name to the
fn
keyword.fn double(int x) {
x + y
}
Because functions are considered first-class in Loop it means they can also contain their own environment. Creating a function automatically creates an environment for that function. Take this as an example:
closure := fn(int x) {
num := x
return fun(int y) {
return x * y
}
}
outer := closure(100) // Returns a function reference
outer(10) // Returns 1000
Last modified 1yr ago