]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: make concat-as inline and don't special-case empty.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 6 Jun 2015 16:24:56 +0000 (09:24 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 6 Jun 2015 16:28:00 +0000 (09:28 -0700)
core/sequences/sequences.factor

index f68067155996dc8ef1424d4883f3665e36ba218d..d16f3b9557db3b8dc385c8c0fb95ff8cf9903088 100644 (file)
@@ -840,10 +840,10 @@ M: repetition sum-lengths
     [ len>> ] [ elt>> length ] bi * ;
 
 : concat-as ( seq exemplar -- newseq )
-    swap [ { } ] [
-        [ sum-lengths over new-resizable ] keep
-        [ append! ] each
-    ] if-empty swap like ;
+    [
+        [ dup sum-lengths ] dip new-resizable
+        [ [ push-all ] curry each ] keep
+    ] keep like ; inline
 
 : concat ( seq -- newseq )
     [ { } ] [ dup first concat-as ] if-empty ;