我有一个像[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]
答案 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)]