Как предотвратить сглаживание результата функцией сбора/сохранения

>> 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]]. Кажется, что сбор/сохранение сгладит результат (с точки зрения блока). Как это предотвратить?


person lyl    schedule 23.03.2021    source источник
comment
Вы также можете использовать parse: parse a [collect some [keep block! | skip]]   -  person endo64    schedule 23.03.2021


Ответы (1)


Используйте 1_. К вашему сведению, keep имеет почти ту же семантику, что и append (за исключением нескольких уточнений) с неявным блоком, который collect обеспечивает внутри: см. ?? collect для деталей.

person 9214    schedule 23.03.2021