]> gitweb.factorcode.org Git - factor.git/commitdiff
factor: refactor something
authorDoug Coleman <doug.coleman@gmail.com>
Sat, 23 Jul 2022 00:27:03 +0000 (19:27 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 31 Jul 2022 18:24:58 +0000 (13:24 -0500)
basis/compiler/cfg/checker/checker.factor
extra/sequences/extras/extras.factor

index 0330d85b67aba6e379b219006a33226094fff3f3..23c5b25b6de05e55870475e016ee68766b5ca00e 100644 (file)
@@ -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 -- )
index 830dedb9971cea5c9dbe0e2e8df9e0778f7caa7b..fed27d2f268881c17e52c610ca2efdeaec7521f0 100644 (file)
@@ -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