: push-if* ( ..a elt quot: ( ..a elt -- ..b obj/f ) accum -- ..b )
[ call ] dip [ push ] [ drop ] if* ; inline
-: push? ( elt/f accum -- )
+: maybe-push ( elt/f accum -- )
over [ push ] [ 2drop ] if ; inline
<PRIVATE
[ 2over [ length ] bi@ * ] dip
[
new-resizable
- [ [ push? ] curry compose 2nested-each* ] keep
+ [ [ maybe-push ] curry compose 2nested-each* ] keep
] keep like ; inline
: 2nested-filter* ( seq1 seq-quot quot -- seq )
[ 2over [ length ] bi@ * ] dip
[
new-resizable
- [ [ push? ] curry compose 2nested-each ] keep
+ [ [ maybe-push ] curry compose 2nested-each ] keep
] keep like ; inline
: 2nested-filter ( seq1 seq2 quot -- seq )
[ 3 nover [ length ] tri@ * * ] dip
[
new-resizable
- [ [ push? ] curry compose 3nested-each ] keep
+ [ [ maybe-push ] curry compose 3nested-each ] keep
] keep like ; inline
: 3nested-filter ( seq1 seq2 seq3 quot -- seq )