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

Premier amour du lycée

Exercice d'apprentissage

Introduction

Strings

Les chaînes de caractères en Elixir sont délimitées par des guillemets doubles, et elles sont encodées en UTF-8 :

"Hi!"

Les strings peuvent être concaténées à l'aide de l'opérateur <>/2 :

"Welcome to" <> " " <> "New York"
# => "Welcome to New York"

Les strings en Elixir prennent en charge l'interpolation avec la syntaxe #{} :

"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"

Pour insérer un caractère de saut de ligne dans une string, utilise le code d'échappement \n :

"1\n2\n3\n"

Pour travailler confortablement avec des textes comportant beaucoup de sauts de ligne, utilise plutôt la syntaxe heredoc à triple guillemets doubles :

"""
1
2
3
"""

Elixir fournit de nombreuses fonctions pour travailler avec les strings dans le module String.

Opérateur pipe

L'opérateur |> est appelé 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 comme premier argument à l'appel de fonction suivant.

"hello"
|> String.upcase()
|> Kernel.<>("?!")

# => "HELLO?!"

Instructions

Dans cet exercice, tu vas aider des amoureux de lycée à déclarer leur flamme sur les réseaux sociaux en générant une boîte ASCII avec leurs initiales :

❤-------------------❤
|  J. K.  +  M. B.  |
❤-------------------❤

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

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

HighSchoolSweetheart.first_letter("Jane")
# => "J"

2. Mets en forme la première lettre en initiale

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

HighSchoolSweetheart.initial("Robert")
# => "R."

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

Implémente la fonction HighSchoolSweetheart.initials/1. 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 HighSchoolSweetheart.initial/1 que tu as définie à l'étape précédente.

HighSchoolSweetheart.initials("Lance Green")
# => "L. G."

4. Place les initiales à l'intérieur de la boîte ASCII

Implémente la fonction HighSchoolSweetheart.pair/2. Elle doit prendre deux noms complets et renvoyer les initiales à l'intérieur d'une boîte ASCII. Tu n'as pas besoin de dessiner la boîte toi-même : sers-toi de celle qui est incluse dans le commentaire du code. Pense à réutiliser HighSchoolSweetheart.initials/1 que tu as définie à l'étape précédente.

HighSchoolSweetheart.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
Elixir Exercism

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

Inscris-toi sur Exercism pour apprendre et maîtriser Elixir avec 58 concepts168 exercices, et un vrai mentorat humain, le tout gratuitement.