From 4ae0733c621c9bbe0ce8a991dd2565973c42da33 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 22 Jul 2022 19:27:03 -0500 Subject: [PATCH] factor: refactor something --- basis/compiler/cfg/checker/checker.factor | 2 +- extra/sequences/extras/extras.factor | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/basis/compiler/cfg/checker/checker.factor b/basis/compiler/cfg/checker/checker.factor index 0330d85b67..23c5b25b6d 100644 --- a/basis/compiler/cfg/checker/checker.factor +++ b/basis/compiler/cfg/checker/checker.factor @@ -6,7 +6,7 @@ IN: compiler.cfg.checker ERROR: bad-successors ; : check-successors ( bb -- ) - dup successors>> '[ _ predecessors>> member-eq-of? ] all? + dup successors>> [ predecessors>> member-eq? ] with all? [ bad-successors ] unless ; : check-cfg ( cfg -- ) diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 830dedb997..fed27d2f26 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -12,7 +12,8 @@ IN: sequences.extras :: subseq* ( from to seq -- subseq ) seq length :> len from [ dup 0 < [ len + ] when ] [ 0 ] if* - to [ dup 0 < [ len + ] when ] [ len ] if* [ 0 len clamp ] bi@ dupd max seq subseq ; + to [ dup 0 < [ len + ] when ] [ len ] if* + [ 0 len clamp ] bi@ dupd max seq subseq ; : safe-subseq ( from to seq -- subseq ) [ length '[ 0 _ clamp ] bi@ ] keep subseq ; @@ -20,13 +21,10 @@ IN: sequences.extras : all-subseqs ( seq -- seqs ) dup length [1..b] [ clump ] with map concat ; -:: each-subseq ( ... seq quot: ( ... subseq -- ... ) -- ... ) - seq length :> len - len [0..b] [| from | - from len (a..b] [| to | - from to seq subseq quot call - ] each - ] each ; inline +: each-subseq ( ... seq quot: ( ... subseq -- ... ) -- ... ) + [ dup length [ [0..b] ] [ ] bi ] dip '[ + dup _ (a..b] [ rot [ subseq _ call ] keep ] with each + ] each drop ; inline : map-like ( seq exemplar -- seq' ) '[ _ like ] map ; inline @@ -263,7 +261,7 @@ PRIVATE> overd [ [ collect-with-previous ] keep ] new-like ; inline : map-with-previous-as ( ... seq quot: ( ... elt prev/f -- ... newelt ) exemplar -- ... newseq ) - [ (1each) ] dip map-integers-with ; inline + [ length-operator ] dip map-integers-with ; inline : map-with-previous ( ... seq quot: ( ... elt prev/f -- ... newelt ) -- ... newseq ) over map-with-previous-as ; inline -- 2.34.1