我怎样才能构建一个块!含有parens?

时间:2017-05-03 18:04:37

标签: red

我有一个像[x y]这样的单词块,我想制作一个[x: (x) y: (y)]

这并不是很有效:

>> b: [x y]
== [x y]
>> collect [foreach w b [keep to-set-word w keep to-paren w]]
== [x: x y: y]

1 个答案:

答案 0 :(得分:2)

收集参数值时,

keep依赖于append操作,因此paren!参数将看到附加的每个包含的值,而不是整个paren系列(与任何其他值相同) any-block!类型)。要将paren系列作为单个值附加,请使用keep/only(然后在内部使用append/only

>> b: [x y]
== [x y]
>> collect [foreach w b [keep to-set-word w keep/only to-paren w]]
== [x: (x) y: (y)]