Lasagnes

Lasagnes

Exercice d'apprentissage

Introduction

Bases

Fonctions

En Gleam, les fonctions se définissent avec la syntaxe pub fn.

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

Cette fonction prend deux arguments, tous deux de type Int, et renvoie une valeur de type Int. Il n'y a pas de mot-clé return en Gleam : la valeur de la dernière expression d'une fonction est toujours renvoyée implicitement.

Les annotations de type des arguments et le type de retour sont facultatifs, et Gleam vérifiera toujours entièrement le typage de ton code. En général, les développeurs Gleam annotent leurs fonctions avec des types pour plus de clarté, mais tu peux les omettre si tu le souhaites.

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

On peut appeler une fonction avec la syntaxe function_name(argument1, argument2).

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

Variables

En Gleam, les variables se définissent avec la syntaxe let name = expression.

pub fn main() {
  let count = 1
}

Les variables peuvent être déclarées avec des annotations de type. Comme pour les arguments de fonction, elles sont facultatives, même si la plupart des développeurs Gleam omettent les annotations de type des variables pour aller à l'essentiel.

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

Littéraux de string

En Gleam, les strings s'écrivent avec des guillemets doubles.

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

Commentaires de code

Les commentaires permettent de laisser des notes aux autres développeurs qui lisent le code source. En Gleam, les commentaires tiennent sur une seule ligne et sont précédés de //.

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

Instructions

Dans cet exercice, on va écrire du code pour t'aider à cuisiner une lasagne géniale à partir de ton livre de cuisine préféré.

Tu as cinq tâches à réaliser, toutes liées au temps passé à cuisiner la lasagne.

1. Définis le temps de cuisson attendu en minutes

Définis la fonction expected_minutes_in_oven, qui ne prend aucun argument et renvoie le nombre de minutes que la lasagne doit passer au four. D'après le livre de cuisine, le temps de cuisson attendu est de 40 minutes :

expected_minutes_in_oven()
// -> 40

2. Calcule le temps de cuisson restant en minutes

Définis la fonction remaining_minutes_in_oven qui prend en argument le nombre de minutes que la lasagne a déjà passées au four et renvoie le nombre de minutes qu'il lui reste à passer au four, en se basant sur le temps de cuisson attendu de la tâche précédente.

remaining_minutes_in_oven(30)
// -> 10

3. Calcule le temps de préparation en minutes

Définis la fonction preparation_time_in_minutes qui prend en argument le nombre de couches que tu as ajoutées à la lasagne et renvoie le nombre de minutes que tu as passées à la préparer, en supposant que chaque couche te prenne 2 minutes.

preparation_time_in_minutes(2)
// -> 4

4. Calcule le temps de travail total en minutes

Définis la fonction total_time_in_minutes qui prend deux arguments : le premier est le nombre de couches que tu as ajoutées à la lasagne, et le second est le nombre de minutes que la lasagne a passées au four. La fonction doit renvoyer le nombre total de minutes que tu as consacrées à la cuisson de la lasagne, c'est-à-dire la somme du temps de préparation en minutes et du temps en minutes que la lasagne a déjà passé au four.

total_time_in_minutes(3, 10)
// -> 16

5. Crée une notification indiquant que la lasagne est prête

Définis la fonction alarm qui ne prend aucun argument et renvoie un message indiquant que la lasagne est prête à être mangée.

alarm()
// -> "Ding!"
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Gleam Exercism

Prêt à commencer Lasagnes ?

Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.