Trilhas
/
Gleam
Gleam
/
Exercícios
/
Namorada do ensino médio
Namorada do ensino médio

Namorada do ensino médio

Exercício de aprendizagem

Introdução

Operador pipe

O operador |> é chamado de operador pipe. Ele pode ser usado para encadear chamadas de função de modo que o valor retornado pela chamada de função anterior seja passado para a próxima chamada de função.

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

O código acima é equivalente ao seguinte:

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

O operador pipe passa o valor como primeiro argumento para a chamada de função, ou como único argumento para uma nova chamada, escolhendo a opção que tiver o tipo correto.

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)

Às vezes, queremos passar o valor para outra posição. Nesse caso, o placeholder _ pode ser usado para indicar onde o valor deve ser inserido.

100
|> some_function(1, _, 2)

Instruções

Neste exercício, você vai ajudar namorados do ensino médio a declarar seu amor nas redes sociais, gerando um coração em ASCII com as iniciais deles:

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

1. Obtenha a primeira letra do nome

Implemente a função first_letter. Ela deve receber um nome e retornar sua primeira letra. Também deve remover qualquer espaço em branco desnecessário do nome.

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

2. Formate a primeira letra como uma inicial

Implemente a função initial. Ela deve receber um nome e retornar sua primeira letra, em maiúscula, seguida de um ponto. Não deixe de reutilizar a função first_letter que você definiu no passo anterior.

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

3. Divida o nome completo em nome e sobrenome

Implemente a função initials. Ela deve receber um nome completo, formado por um nome e um sobrenome separados por um espaço, e retornar as iniciais. Não deixe de reutilizar a função initial que você definiu no passo anterior.

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

4. Coloque as iniciais dentro do coração

Implemente a função pair. Ela deve receber dois nomes completos e retornar as iniciais dentro de um coração em ASCII. Não deixe de reutilizar a função initials que você definiu no passo anterior.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
Editar via GitHub O link abre em uma nova janela ou aba
Gleam Exercism

Tudo pronto para começar Namorada do ensino médio?

Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.