]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: Add {filter,reject}-{keys,values}
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 19 Jul 2020 15:40:27 +0000 (10:40 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 19 Jul 2020 15:41:51 +0000 (10:41 -0500)
extra/sequences/extras/extras.factor

index 45bc1ecd7f4d741b23e74b9059bd20d9661d4f9f..d174e9b11a1433cdbd862e2f6169086949abb8d2 100644 (file)
@@ -617,6 +617,18 @@ PRIVATE>
 : map-values ( assoc quot: ( value -- value' ) -- assoc )
     '[ swap _ dip swap ] assoc-map ; inline
 
+: filter-keys ( assoc quot: ( key -- key' ) -- assoc' )
+    '[ drop @ ] assoc-filter ; inline
+
+: filter-values ( assoc quot: ( value -- value' ) -- assoc' )
+    '[ nip @ ] assoc-filter ; inline
+
+: reject-keys ( assoc quot: ( key -- key' ) -- assoc' )
+    '[ drop @ ] assoc-reject ; inline
+
+: reject-values ( assoc quot: ( value -- value' ) -- assoc' )
+    '[ nip @ ] assoc-reject ; inline
+
 : take-while ( ... seq quot: ( ... elt -- ... ? ) -- head-slice )
     [ '[ @ not ] find drop ] keepd swap
     [ dup length ] unless* head-slice ; inline