]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: unslicing in binary-reduce
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 22 Jan 2022 23:42:39 +0000 (15:42 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 22 Jan 2022 23:42:39 +0000 (15:42 -0800)
core/sequences/sequences.factor

index b1524145d4af27eedc2633a0935b9f25df5d784c..f090543020e7d9438c4156b67e3e2e2680c4ea0e 100644 (file)
@@ -1017,7 +1017,11 @@ PRIVATE>
 PRIVATE>
 
 : binary-reduce ( seq start quot: ( elt1 elt2 -- newelt ) -- value )
-    pick length 0 max 0 swap (binary-reduce) ; inline
+    pick dup slice? [
+        [ seq>> ] 3dip [ from>> 0 max ] [ to>> 0 max over - ] bi
+    ] [
+        length 0 max 0 swap
+    ] if (binary-reduce) ; inline
 
 : cut ( seq n -- before after )
     [ head ] [ tail ] 2bi ;