问题描述
>> a: [[1 2] "a" a [3 3]]
== [[1 2] "a" a [3 3]]
>> collect [foreach x a [if block? x [keep x]]]
== [1 2 3 3]
但我想要的是 [[1 2] [3 3]]。似乎收集/保持会使结果变平(就块而言)。如何预防?
解决方法
使用keep/only
。仅供参考,keep
具有与 append
几乎相同的语义(除了一些改进),带有 collect
内部提供的隐式块:有关详细信息,请参阅 ?? collect
。