Parcours
/
Gleam
Gleam
/
Exercices
/
Premier amour du lycée
Premier amour du lycée

Premier amour du lycée

Exercice d'apprentissage

Introduction

L'opérateur pipe

L'opérateur |> s'appelle l'opérateur pipe. Il permet d'enchaîner des appels de fonctions, de sorte que la valeur renvoyée par l'appel de fonction précédent soit passée à l'appel de fonction suivant.

"hello"
|> string.uppercase
|> string.append("?!")
// -> "HELLO?!"

Le code ci-dessus est équivalent à ce qui suit :

string.append(string.uppercase("hello"), "?!")

L'opérateur pipe passe la valeur soit comme premier argument de l'appel de fonction, soit comme unique argument d'un nouvel appel, en choisissant celle des deux possibilités qui donne le bon type.

100
|> function_that_takes_two_arguments(1)

// Is equivalent to
function_that_takes_two_arguments(100, 1)
100
|> function_that_returns_a_function(1)

// Is equivalent to
function_that_returns_a_function(1)(100)

Il arrive parfois que l'on veuille placer la valeur à une autre position ; dans ce cas, on peut utiliser le marqueur de position _ pour indiquer où la valeur doit être insérée.

100
|> some_function(1, _, 2)

Instructions

Dans cet exercice, tu vas aider des amoureux de lycée à déclarer leur amour sur les réseaux sociaux en générant un cœur en ASCII avec leurs initiales :

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

1. Récupère la première lettre du nom

Implémente la fonction first_letter. Elle doit prendre un nom et renvoyer sa première lettre. Elle doit aussi supprimer les espaces superflus du nom.

first_letter("Jane")
// -> "J"

2. Formate la première lettre en initiale

Implémente la fonction initial. Elle doit prendre un nom et renvoyer sa première lettre, en majuscule, suivie d'un point. Pense à réutiliser first_letter, que tu as définie à l'étape précédente.

initial("Robert")
// -> "R."

3. Sépare le nom complet en prénom et nom de famille

Implémente la fonction initials. Elle doit prendre un nom complet, composé d'un prénom et d'un nom de famille séparés par un espace, et renvoyer les initiales. Pense à réutiliser initial, que tu as définie à l'étape précédente.

initials("Lance Green")
// -> "L. G."

4. Place les initiales à l'intérieur du cœur

Implémente la fonction pair. Elle doit prendre deux noms complets et renvoyer les initiales à l'intérieur d'un cœur en ASCII. Pense à réutiliser initials, que tu as définie à l'étape précédente.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Gleam Exercism

Prêt à commencer Premier amour du lycée ?

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