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 comprobará completamente los tipos de tu código. Normalmente, los programadores de Gleam añaden anotaciones de tipo a sus funciones por claridad, pero puedes omitirlas si lo deseas.

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

Se puede llamar a una función usando 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 función, estas son opcionales, aunque la mayoría de los programadores de Gleam omiten las anotaciones de tipo para las variables por brevedad.

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

Literales de string

En Gleam, los strings se escriben usando comillas dobles.

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

Comentarios de código

Los comentarios se pueden usar para dejar notas a otros desarrolladores que lean el código fuente. Los comentarios en Gleam son líneas individuales precedidas 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 con 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 que la lasaña lleva en el horno y devuelve cuántos minutos le quedan aún 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 has añadido a la lasaña y devuelve cuántos minutos has tardado en prepararla, suponiendo que tardas 2 minutos en preparar cada capa.

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 has añadido a la lasaña y el segundo es el número de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos en total has trabajado cocinando 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 en ese 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 pestaña nueva
Gleam Exercism

¿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.