Una lista de caracteres no es más que una lista de personajes. Considere el siguiente programa para entender lo mismo.
IO.puts('Hello')
IO.puts(is_list('Hello'))
El programa anterior genera el siguiente resultado:
Hello
true
En lugar de contener bytes, una lista de caracteres contiene los puntos de código de los caracteres entre comillas simples. So while the double-quotes represent a string (i.e. a binary), singlequotes represent a char list (i.e. a list). Tenga en cuenta que IEx generará solo puntos de código como salida si alguno de los caracteres está fuera del rango ASCII.
Las listas de caracteres se utilizan principalmente cuando se interactúa con Erlang, en particular las bibliotecas antiguas que no aceptan binarios como argumentos. Puede convertir una lista de caracteres en una cadena y viceversa utilizando las funciones to_string (char_list) y to_char_list (string) -
IO.puts(is_list(to_char_list("hełło")))
IO.puts(is_binary(to_string ('hełło')))
El programa anterior genera el siguiente resultado:
true
true
NOTE - Las funciones to_string y to_char_list son polimórficos, es decir, pueden tomar múltiples tipos de entrada como átomos, enteros y convertirlos en cadenas y listas de caracteres respectivamente.