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.
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?!"
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. |
❤-------------------❤
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"
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."
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."
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. |
# ❤-------------------❤
# """
Inscris-toi sur Exercism pour apprendre et maîtriser Elixir avec 58 concepts168 exercices, et un vrai mentorat humain, le tout gratuitement.