Percursos
/
Elixir
Elixir
/
Exercícios
/
Namorada do Secundário
Namorada do Secundário

Namorada do Secundário

Exercício de aprendizagem

Introdução

Strings

Em Elixir, as strings 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 suportam interpolação com a sintaxe #{}:

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

Para colocar um caráter de nova linha numa string, usa o código de escape \n:

"1\n2\n3\n"

Para trabalhar confortavelmente com textos com muitas novas linhas, usa antes a sintaxe heredoc com três aspas duplas:

"""
1
2
3
"""

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

Operador pipe

O operador |> chama-se operador pipe. Podes usá-lo para encadear chamadas de funções, de modo que o valor devolvido pela chamada anterior é passado como primeiro argumento à chamada seguinte.

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

# => "HELLO?!"

Instruções

Neste exercício, vais ajudar namorados do liceu a declarar o seu amor nas redes sociais, gerando uma caixa ASCII com as iniciais deles:

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

1. Obter a primeira letra do nome

Implementa a função HighSchoolSweetheart.first_letter/1. Deve receber um nome e devolver a sua primeira letra. Deve limpar todos os espaços desnecessários do nome.

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

2. Formatar a primeira letra como inicial

Implementa a função HighSchoolSweetheart.initial/1. Deve receber um nome e devolver a sua primeira letra, em maiúscula, seguida de um ponto. Certifica-te de que reutilizas HighSchoolSweetheart.first_letter/1, que definiste no passo anterior.

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

3. Dividir o nome completo no primeiro nome e no último nome

Implementa a função HighSchoolSweetheart.initials/1. Deve receber um nome completo, composto por um primeiro nome e um último nome separados por um espaço, e devolver as iniciais. Certifica-te de que reutilizas HighSchoolSweetheart.initial/1, que definiste no passo anterior.

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

4. Colocar as iniciais dentro da caixa ASCII

Implementa a função HighSchoolSweetheart.pair/2. Deve receber dois nomes completos e devolver as iniciais dentro de uma caixa ASCII. Não precisas de desenhar a caixa tu próprio. Usa a caixa incluída no comentário do código. Certifica-te de que reutilizas HighSchoolSweetheart.initials/1, que definiste no passo anterior.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# |  B. M.  +  R. L.  |
# ❤-------------------❤
# """
Editar via GitHub A ligação abre numa nova janela ou separador
Elixir Exercism

Estás pronto para começar Namorada do Secundário?

Inscreve-te no Exercism para aprenderes e dominares Elixir com 58 conceitos168 exercícios, e mentoria humana real, tudo grátis.