Variant Of "COLLECT" Without "KEEP"

Where things have been headed is to offer a MAP operation combined with generators.

>> gen: each [1 2]
== ~#[frame! "gen" []]~  ; anti

>> gen
== 1

>> gen
== 2

>> gen
== ~null~  ; anti

>> map x each [1 2] [x * 10]
== [10 20]

>> for x each [1 2] [print ["x is" x], x * 10]
x is 1
x is 2
== 20

When you combine this with GENERATOR and YIELDER (work in progress) it gives even more options.

You'd get something analogous to COLLECT and KEEP with:

>> map y generator [
       for x each [1 2] [yield x * 10] yield [a b] yield spread [d e]
   ] [y]
== [10 20 [a b] d e]

But it's not the same approach (e.g. there's no YIELD/LINE or YIELD/DUP). The pattern of implementing COLLECT+KEEP is applicable to different kinds of problems.