Los puertos, externos o vinculados, aceptan algo llamado io-lists para enviar datos a ellos. Una io-list es una lista binaria o una (posiblemente profunda) de binarios o enteros en el rango 0..255.
Esto significa que en lugar de concatenar dos listas antes de enviarlas a un puerto, una puede simplemente enviarlas como dos elementos en una lista. Así que en lugar de
"foo" ++ "bar"
uno hacer
["foo", "bar"]
En este ejemplo es, por supuesto, de la diferencia minúscula. Pero el iolist en sí mismo permite una programación conveniente cuando se crean datos de salida. io_lib: format/2,3 devuelve, por ejemplo, una lista io.
La función erlang: list_to_binary/1 acepta io lists, pero ahora tenemos erlang: iolist_to_binary/1 que comunica mejor la intención.También hay un erlang: iolist_size/1.
Lo mejor de todo es que, dado que los archivos y las tomas de corriente se implementan como puertos, puede enviarles iolists. No es necesario aplanar o anexar.
Please Community Wiki this. –
Sugiero agregar una etiqueta de características ocultas a esto y hacer que las notas sobre las funciones ocultas de otros idiomas vinculen a esas preguntas. –
@Olafur ¿cómo? ¡ayuda! @Avihu hecho. ¡Gracias por la sugerencia! :) – pageman