Lasaña

Lasaña

Ejercicio de aprendizaje

Introducción

Fundamentos

Funciones

En Gleam, las funciones se definen con la sintaxis pub fn.

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

Esta función toma dos argumentos, ambos de tipo Int, y devuelve un valor de tipo Int. En Gleam no existe la palabra clave return: el valor de la última expresión de una función siempre se devuelve de forma implícita.

Las anotaciones de tipo para los argumentos y el tipo de retorno son opcionales, y Gleam siempre verificará por completo los tipos de tu código. Por lo general, quienes programan en Gleam les ponen anotaciones de tipo a sus funciones para mayor claridad, pero puedes omitirlas si quieres.

pub fn add(x, y) {
  x + y
}

Puedes llamar a una función con la sintaxis function_name(argument1, argument2).

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

Variables

En Gleam, las variables se definen con la sintaxis let name = expression.

pub fn main() {
  let count = 1
}

Las variables se pueden declarar con anotaciones de tipo. Al igual que los argumentos de las funciones, son opcionales, aunque la mayoría de quienes programan en Gleam omiten las anotaciones de tipo en las variables por brevedad.

pub fn main() {
  let count: Int = 1
}

Literales de string

En Gleam, un string se escribe con comillas dobles.

pub fn greeting() {
  "Hello, world!"
}

Comentarios en el código

Los comentarios sirven para dejar notas a otras personas que lean el código fuente. En Gleam, los comentarios son de una sola línea y van precedidos por //.

pub fn main() {
  // This is a comment
  let x = 1
}

Instrucciones

En este ejercicio vas a escribir algo de código para ayudarte a cocinar una lasaña espectacular de tu libro de cocina favorito.

Tienes cinco tareas, todas relacionadas con el tiempo que se tarda en cocinar la lasaña.

1. Define el tiempo esperado en el horno en minutos

Define la función expected_minutes_in_oven que no recibe ningún argumento y devuelve cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno en minutos es 40:

expected_minutes_in_oven()
// -> 40

2. Calcula el tiempo restante en el horno en minutos

Define la función remaining_minutes_in_oven que recibe como argumento los minutos reales que la lasaña ha estado en el horno y devuelve cuántos minutos le quedan todavía por estar en el horno, según el tiempo esperado en el horno en minutos de la tarea anterior.

remaining_minutes_in_oven(30)
// -> 10

3. Calcula el tiempo de preparación en minutos

Define la función preparation_time_in_minutes que recibe como argumento el número de capas que le agregaste a la lasaña y devuelve cuántos minutos tardaste en preparar la lasaña, suponiendo que cada capa te toma 2 minutos preparar.

preparation_time_in_minutes(2)
// -> 4

4. Calcula el tiempo total de trabajo en minutos

Define la función total_time_in_minutes que recibe dos argumentos: el primer argumento es el número de capas que le agregaste a la lasaña, y el segundo argumento es el número de minutos que la lasaña ha estado en el horno. La función debe devolver cuántos minutos en total has trabajado en cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña ha pasado en el horno hasta el momento.

total_time_in_minutes(3, 10)
// -> 16

5. Crea una notificación de que la lasaña está lista

Define la función alarm que no recibe ningún argumento y devuelve un mensaje que indica que la lasaña está lista para comer.

alarm()
// -> "Ding!"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Gleam Exercism

¿Todo listo para empezar Lasaña?

Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.