REBOL 没有内置的方法来执行列表推导。但是,REBOL 有一个强大的工具(称为parse
),可用于创建领域特定语言 (DSL)。我曾经parse
为列表推导创建过这样的迷你 DSL。为了解释表达式,包含理解的块被传递给一个函数,由于没有更好的术语,我称之为comprehend
.
例子:
comprehend [(a * b) for a in 1x100 for b in 4x10 where (all [odd? a odd? b])]
出于某种原因,comprehend
对我来说听起来不正确,但是类似eval
的东西太笼统了。
我还没有找到任何其他需要关键字或函数来进行列表理解的语言。无论它们存在于何处,它们都是纯语法糖。不幸的是,我没有那个选项。那么,既然我必须有一个函数,那么它的一个好的、简洁、合乎逻辑的名称是什么?