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

Namorada do ensino médio

Exercício de aprendizagem

Introdução

Strings

As strings em Elixir são delimitadas por aspas duplas e codificadas em UTF-8:

"Hi!"

As strings podem ser concatenadas com o operador <>/2:

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

As strings em Elixir aceitam interpolação com a sintaxe #{}:

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

Para colocar um caractere de nova linha em uma string, use o código de escape \n:

"1\n2\n3\n"

Para trabalhar confortavelmente com textos que têm muitas quebras de linha, use a sintaxe heredoc de aspas triplas duplas:

"""
1
2
3
"""

O Elixir oferece muitas funções para trabalhar com strings no módulo String.

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 anterior seja passado como primeiro argumento para a próxima chamada.

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

# => "HELLO?!"

Instruções

Neste exercício, você vai ajudar namorados do ensino médio a declarar seu amor nas redes sociais, gerando uma caixa ASCII com as iniciais deles:

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

1. Obtenha a primeira letra do nome

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

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

2. Formate a primeira letra como uma inicial

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

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

3. Divida o nome completo entre nome e sobrenome

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

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

4. Coloque as iniciais dentro da caixa ASCII

Implemente a função HighSchoolSweetheart.pair/2. Ela deve receber dois nomes completos e retornar as iniciais dentro de uma caixa ASCII. Você não precisa desenhar a caixa sozinho: use a caixa incluída no comentário do código. Certifique-se de reutilizar a função HighSchoolSweetheart.initials/1 que você definiu no passo anterior.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# |  B. M.  +  R. L.  |
# ❤-------------------❤
# """
Editar via GitHub O link abre em uma nova janela ou aba
Elixir Exercism

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

Crie sua conta no Exercism para aprender e dominar Elixir com 58 conceitos168 exercícios e mentoria humana de verdade, tudo de graça.