sequences.deep: adding deep-reject.
parent
7e7efe8128
commit
dac41e1bf7
|
@ -29,6 +29,12 @@ M: object branch? drop f ;
|
||||||
: deep-filter ( ... obj quot: ( ... elt -- ... ? ) -- ... seq )
|
: deep-filter ( ... obj quot: ( ... elt -- ... ? ) -- ... seq )
|
||||||
over dup branch? [ drop f ] unless deep-filter-as ; inline
|
over dup branch? [ drop f ] unless deep-filter-as ; inline
|
||||||
|
|
||||||
|
: deep-reject-as ( ... obj quot: ( ... elt -- ... ? ) exemplar -- ... seq )
|
||||||
|
[ [ not ] compose ] dip deep-filter-as ; inline
|
||||||
|
|
||||||
|
: deep-reject ( ... obj quot: ( ... elt -- ... ? ) -- ... seq )
|
||||||
|
[ not ] compose deep-filter ; inline
|
||||||
|
|
||||||
: (deep-find) ( ... obj quot: ( ... elt -- ... ? ) -- ... elt ? )
|
: (deep-find) ( ... obj quot: ( ... elt -- ... ? ) -- ... elt ? )
|
||||||
[ call ] 2keep rot [ drop t ] [
|
[ call ] 2keep rot [ drop t ] [
|
||||||
over branch? [
|
over branch? [
|
||||||
|
@ -59,7 +65,7 @@ M: object branch? drop f ;
|
||||||
] [ drop ] if ; inline recursive
|
] [ drop ] if ; inline recursive
|
||||||
|
|
||||||
: flatten ( obj -- seq )
|
: flatten ( obj -- seq )
|
||||||
[ branch? not ] deep-filter ;
|
[ branch? ] deep-reject ;
|
||||||
|
|
||||||
: flatten-as ( obj exemplar -- seq )
|
: flatten-as ( obj exemplar -- seq )
|
||||||
[ branch? not ] swap deep-filter-as ;
|
[ branch? ] swap deep-reject-as ;
|
||||||
|
|
Loading…
Reference in New Issue