Track
/
Elixir
Elixir
/
Esercizi
/
L'amore del liceo
L'amore del liceo

L'amore del liceo

Esercizio di apprendimento

Introduzione

Stringhe

Le stringhe in Elixir sono delimitate da doppi apici e sono codificate in UTF-8:

"Hi!"

Le stringhe possono essere concatenate usando l'operatore <>/2:

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

Le stringhe in Elixir supportano l'interpolazione usando la sintassi #{}:

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

Per inserire un carattere di nuova riga in una stringa, usa il codice di escape \n:

"1\n2\n3\n"

Per lavorare comodamente con testi che contengono molti caratteri di nuova riga, usa invece la sintassi heredoc con tripli doppi apici:

"""
1
2
3
"""

Elixir mette a disposizione molte funzioni per lavorare con le stringhe nel modulo String.

Operatore pipe

L'operatore |> si chiama operatore pipe. Può essere usato per concatenare tra loro più chiamate di funzione, in modo che il valore restituito dalla chiamata precedente venga passato come primo argomento alla chiamata successiva.

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

# => "HELLO?!"

Istruzioni

In questo esercizio aiuterai due innamorati del liceo a professare il loro amore sui social media, generando un riquadro ASCII con le loro iniziali:

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

1. Ottenere la prima lettera del nome

Implementa la funzione HighSchoolSweetheart.first_letter/1. Dovrebbe prendere un nome e restituirne la prima lettera. Dovrebbe anche eliminare dal nome gli spazi bianchi superflui.

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

2. Formattare la prima lettera come iniziale

Implementa la funzione HighSchoolSweetheart.initial/1. Dovrebbe prendere un nome e restituirne la prima lettera, in maiuscolo, seguita da un punto. Assicurati di riutilizzare HighSchoolSweetheart.first_letter/1, che hai definito nel passaggio precedente.

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

3. Suddividere il nome completo in nome e cognome

Implementa la funzione HighSchoolSweetheart.initials/1. Dovrebbe prendere un nome completo, formato da un nome e un cognome separati da uno spazio, e restituire le iniziali. Assicurati di riutilizzare HighSchoolSweetheart.initial/1, che hai definito nel passaggio precedente.

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

4. Inserire le iniziali all'interno del riquadro ASCII

Implementa la funzione HighSchoolSweetheart.pair/2. Dovrebbe prendere due nomi completi e restituire le iniziali all'interno di un riquadro ASCII. Non devi disegnare il riquadro da solo: usa quello incluso nel commento del codice. Assicurati di riutilizzare HighSchoolSweetheart.initials/1, che hai definito nel passaggio precedente.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# |  B. M.  +  R. L.  |
# ❤-------------------❤
# """
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Elixir Exercism

Vuoi iniziare L'amore del liceo?

Iscriviti a Exercism per imparare e padroneggiare Elixir con 58 concetti168 esercizi e il mentoring di persone reali, tutto gratis.