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.
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?!"
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. |
❤-------------------❤
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"
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."
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."
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. |
# ❤-------------------❤
# """
Crie sua conta no Exercism para aprender e dominar Elixir com 58 conceitos168 exercícios e mentoria humana de verdade, tudo de graça.