From 9c60c202e9f0b5913876bc121a5714ec768458a3 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 19 Jul 2020 20:18:15 -0700 Subject: [PATCH] sequences.extras: move some words to assocs.extras. --- extra/assocs/extras/extras.factor | 20 +++++++++++++++++++- extra/sequences/extras/extras.factor | 20 +------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/extra/assocs/extras/extras.factor b/extra/assocs/extras/extras.factor index a426ae4568..e0f78dbdd1 100644 --- a/extra/assocs/extras/extras.factor +++ b/extra/assocs/extras/extras.factor @@ -23,6 +23,24 @@ IN: assocs.extras : sum-values ( assoc -- n ) 0 [ + ] reduce-values ; inline +: map-keys ( assoc quot: ( key -- key' ) -- assoc ) + '[ _ dip ] assoc-map ; inline + +: 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 + : if-assoc-empty ( ..a assoc quot1: ( ..a -- ..b ) quot2: ( ..a assoc -- ..b ) -- ..b ) [ dup assoc-empty? ] [ [ drop ] prepose ] [ ] tri* if ; inline @@ -171,4 +189,4 @@ PRIVATE> [ of ] with map sift ; inline : counts ( seq elts -- counts ) - [ histogram ] dip intersect-keys ; \ No newline at end of file + [ histogram ] dip intersect-keys ; diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index d174e9b11a..de6d8e4790 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -608,27 +608,9 @@ PRIVATE> : count-subseq* ( subseq seq -- n ) start-all* length ; inline -: map-zip ( quot: ( x -- y ) -- alist ) +: map-zip ( quot: ( key -- value ) -- alist ) '[ _ keep swap ] map>alist ; inline -: map-keys ( assoc quot: ( key -- key' ) -- assoc ) - '[ _ dip ] assoc-map ; inline - -: 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