Translate

lunes, 8 de abril de 2024

Funciones de primer orden en Gleam

 


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.