REBOL не имеет встроенного способа выполнения списков. Однако REBOL имеет мощное средство (известное как parse
), которое может использоваться для создания доменных языков (DSL). Я использовал parse
для создания такого мини-DSL для понимания списков. Чтобы интерпретировать выражение, блок, содержащий понимание, передается функции, которая из-за отсутствия лучшего термина, который я назвал comprehend
.Что мне следует называть функцией REBOL, которая выполняет переписку?
Пример:
comprehend [(a * b) for a in 1x100 for b in 4x10 where (all [odd? a odd? b])]
По какой-то причине, comprehend
не звучит для меня, но что-то вроде eval
является слишком общим.
Я не нашел другого языка, требующего ключевого слова или функции для понимания списков. Они представляют собой чистый синтаксический сахар, где бы они ни существовали. К сожалению, у меня нет такого варианта. Итак, видя, что у меня должна быть функция, какое хорошее, лаконичное, логичное имя для нее?
Вот исходный код для списка понимания: http://blog.revolucent.net/2009/04/dirt-simple-dsl-in-rebol.html – 2014-06-08 05:09:50