]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.deep: adding deep-reject.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 6 Jan 2017 22:09:14 +0000 (14:09 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 6 Jan 2017 22:09:14 +0000 (14:09 -0800)
basis/sequences/deep/deep.factor

index 86388a8af0d208da0932faac266dd5fb5b7ecccf..e4edd80685ecf5096a58a884f7607c7b9daf8d05 100644 (file)
@@ -29,6 +29,12 @@ M: object branch? drop f ;
 : deep-filter ( ... obj quot: ( ... elt -- ... ? ) -- ... seq )
     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 ? )
     [ call ] 2keep rot [ drop t ] [
         over branch? [
@@ -59,7 +65,7 @@ M: object branch? drop f ;
     ] [ drop ] if ; inline recursive
 
 : flatten ( obj -- seq )
-    [ branch? not ] deep-filter ;
+    [ branch? ] deep-reject ;
 
 : flatten-as ( obj exemplar -- seq )
-    [ branch? not ] swap deep-filter-as ;
+    [ branch? ] swap deep-reject-as ;