Las cadenas en Elixir se delimitan con comillas dobles y están codificadas en UTF-8:
"Hi!"
Los strings se pueden concatenar usando el operador <>/2:
"Welcome to" <> " " <> "New York"
# => "Welcome to New York"
Los strings en Elixir soportan interpolación usando la sintaxis #{}:
"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"
Para poner un carácter de salto de línea en un string, usa el código de escape \n:
"1\n2\n3\n"
Para trabajar cómodamente con textos con muchos saltos de línea, usa la sintaxis heredoc de triple comilla doble en su lugar:
"""
1
2
3
"""
Elixir proporciona muchas funciones para trabajar con strings en el módulo String.
El operador |> se llama operador de tubería. Se puede usar para encadenar llamadas a funciones de tal manera que el valor devuelto por la llamada a la función anterior se pasa como primer argumento a la siguiente llamada a función.
"hello"
|> String.upcase()
|> Kernel.<>("?!")
# => "HELLO?!"
En este ejercicio, vas a ayudar a unos novios de secundaria a declarar su amor en las redes sociales generando una caja ASCII con sus iniciales:
❤-------------------❤
| J. K. + M. B. |
❤-------------------❤
Implementa la función HighSchoolSweetheart.first_letter/1. Debe tomar un nombre y devolver su primera letra. Debe limpiar cualquier espacio en blanco innecesario del nombre.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implementa la función HighSchoolSweetheart.initial/1. Debe tomar un nombre y devolver su primera letra, en mayúscula, seguida de un punto. Asegúrate de reutilizar HighSchoolSweetheart.first_letter/1, que definiste en el paso anterior.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implementa la función HighSchoolSweetheart.initials/1. Debe tomar un nombre completo, formado por un nombre y un apellido separados por un espacio, y devolver las iniciales. Asegúrate de reutilizar HighSchoolSweetheart.initial/1, que definiste en el paso anterior.
HighSchoolSweetheart.initials("Lance Green")
# => "L. G."
Implementa la función HighSchoolSweetheart.pair/2. Debe tomar dos nombres completos y devolver las iniciales dentro de una caja ASCII. No necesitas dibujar la caja tú mismo; usa la caja que viene en el comentario del código. Asegúrate de reutilizar HighSchoolSweetheart.initials/1, que definiste en el paso anterior.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# | B. M. + R. L. |
# ❤-------------------❤
# """
Regístrate en Exercism para aprender y dominar Elixir con 58 conceptos168 ejercicios y mentoría humana real, todo gratis.