REBOL no tiene una forma integrada de realizar listas de comprensión. Sin embargo, REBOL tiene una poderosa función (conocida como parse
) que se puede usar para crear lenguajes específicos de dominio (DSL). He usado parse
para crear un mini-DSL para la comprensión de listas. Para interpretar la expresión, el bloque que contiene la comprensión pasa a una función que, por falta de un término mejor, he llamado comprehend
.¿Qué debería llamar una función REBOL que enumera las comprensiones?
Ejemplo:
comprehend [(a * b) for a in 1x100 for b in 4x10 where (all [odd? a odd? b])]
Por alguna razón, comprehend
no suena bien para mí, pero algo así como eval
es demasiado general.
No he encontrado ningún otro idioma que requiera una palabra clave o una función para la lista de comprensiones. Son azúcar sintáctico puro donde sea que existan. Lamentablemente, no tengo esa opción. Entonces, viendo que debo tener una función, ¿cuál es un nombre bueno, sucinto y lógico para eso?
Aquí está el código fuente de la lista por comprensión: http://blog.revolucent.net/2009/04/dirt-simple-dsl-in-rebol.html –