import gleam/io
pub fn main() {
// Call a function with another function
io.debug(twice(1, add_one))
// Functions can be assigned to variables
let my_function = add_one
io.debug(my_function(100))
}
fn twice(argument: Int, passed_function: fn(Int) -> Int) -> Int {
passed_function(passed_function(argument))
}
fn add_one(argument: Int) -> Int {
argument + 1
}
En Gleam las funciones son valores. Se pueden asignar a variables, pasar a otras funciones y cualquier otra cosa que pueda hacer con valores.
Aquí la función add_one se pasa como argumento a la función dos veces.
Observe que la palabra clave fn también se usa para describir el tipo de función que toma dos veces como segundo argumento.