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

L'amore del liceo

Esercizio di apprendimento

Introduzione

Operatore pipe

L'operatore |> è chiamato operatore pipe. Può essere usato per concatenare le chiamate di funzione in modo che il valore restituito dalla chiamata di funzione precedente venga passato alla chiamata successiva.

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

Il codice qui sopra equivale al seguente:

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

L'operatore pipe passerà il valore come primo argomento della chiamata di funzione, oppure come unico argomento di una nuova chiamata, scegliendo quello che avrebbe il tipo corretto.

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)

A volte vogliamo passare il valore in un'altra posizione; in questo caso si può usare il segnaposto _ per indicare dove inserire il valore.

100
|> some_function(1, _, 2)

Istruzioni

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

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

1. Ottieni la prima lettera del nome

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

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

2. Formatta la prima lettera come iniziale

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

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

3. Suddividi il nome completo in nome e cognome

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

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

4. Metti le iniziali dentro il cuore

Implementa la funzione pair. Dovrebbe prendere due nomi completi e restituire le iniziali dentro un cuore ASCII. Assicurati di riutilizzare initials, che hai definito nel passaggio precedente.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Gleam Exercism

Vuoi iniziare L'amore del liceo?

Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.