From 2c488736e40435bdff6365a58556023e93032c55 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 19 Jul 2020 10:40:27 -0500 Subject: [PATCH] sequences.extras: Add {filter,reject}-{keys,values} --- extra/sequences/extras/extras.factor | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 45bc1ecd7f..d174e9b11a 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -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 -- 2.34.1