Continuamos con el tema de Gleam, un lenguaje que corre sobre la máquina virtual de Erlang (BEAM). Similar a Elixir en algunos aspectos.
Si quieres programar usando este lenguaje y además usas VsCode como editor, existe un plugin que podrás instalar:
https://marketplace.visualstudio.com/items?itemName=Gleam.gleam
Te ayudará en el resaltado de estilo, formato, definición y autocompletado.
Recordemos cómo crear un proyecto en Gleam:
gleam new proyecto
Nos ubicamos en el directorio creado:
cd proyecto
Podemos usar VsCode. Abrimos una terminal y tecleamos:
code .
Esto abrirá el editor de código.
Ejemplo 1. Crear una función que mande un saludo.
La sintaxis para crear una función es la siguiente:
pub fn nombre_funcion() {
// Cuerpo del procedimiento o función
}
Nuestra función será esta:
pub fn saludo() {
io.println("\t Hola, mundo desde Gleam")
}
La invocamos desde el método main del programa principal.
proyecto.gleam
import gleam/io
pub fn main() {
saludo()
}
pub fn saludo() {
io.println("\t Hola, mundo desde Gleam")
}
Construimos y ejecutamos:
gleam build
gleam run
Salida:
Hola, mundo desde Gleam
Ejemplo 2. Crear una función que calcula el factorial de un número.
Teniendo el siguiente pseudo código:
numero = 5
IF numero = 0 THEN
result = 1
IF ELSE numero = 1 THEN
result = 1
ELSE
result = numero * FACTORIAL(numero - 1)
La función en Gleam quedaría de tal modo:
pub fn factorial(x: Int) -> Int {
case x {
0 -> 1
1 -> 1
_ -> x * factorial(x - 1)
}
}
La invocamos de esta manera:
import gleam/io
import gleam/int
pub fn main() {
io.println("\t===== Factorial en Gleam =====")
io.println("El factorial de 5: ")
io.debug(factorial(5))
io.println("El factorial de 7: ")
io.debug(factorial(7))
}
Ejemplo 3. Crear una función anónima que sume dos número enteros.
fn suma(a: Int, b: Int) -> Int {
a + b
}
Y la invocamos de la siguiente forma:
import gleam/io
import gleam/int
pub fn main() {
io.println("\t===== Sumando en Gleam =====")
let add = suma(3, 4)
io.println("Suma (3,4) es: ")
io.debug(add)
}
Este post se irá actualizando para agregar más ejemplos.
Enlaces:
https://codemonkeyjunior.blogspot.com/2024/03/conociendo-gleam-un-lenguaje-que-corre.html
https://emanuelpeg.blogspot.com/search?q=gleam