Erlang implementa diferentes funciones para probar si una lista es plana en el módulo io_lib. A pesar del comentario de Jeremy Wall, hay una función para probar si una lista plana contiene caracteres unicode y latin1.
Si desea probar para las listas de Unicode planos se pueden utilizar io_lib: lista_caracteres (Plazo) http://erlang.org/doc/man/io_lib.html#char_list-1
io_lib: lista_caracteres/1 implementación de la función es:
char_list([C|Cs]) when is_integer(C), C >= 0, C < 16#D800;
is_integer(C), C > 16#DFFF, C < 16#FFFE;
is_integer(C), C > 16#FFFF, C =< 16#10FFFF ->
char_list(Cs);
char_list([]) -> true;
char_list(_) -> false.
Una buena opción para el control de Las cadenas codificadas en latin1 son io_lib: lista_char_latina1 (Término) http://erlang.org/doc/man/io_lib.html#latin1_char_list-1
io_lib: lista de carga_local/1 implementación de función es :
latin1_char_list([C|Cs]) when is_integer(C), C >= $\000, C =< $\377 ->
latin1_char_list(Cs);
latin1_char_list([]) -> true;
latin1_char_list(_) -> false.
Compruebe la documentación del módulo io_lib para ver otras funciones similares.
Gracias. Sí, pensé en este pseudo tipado, pero no sabía si era una buena manera de hacer las cosas en Erlang. – Zubair
Otra opción que he visto utilizar es mantener todas las cadenas como binarias. –