]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/sequences/extras/extras.factor
sequences.extras: adding join-with-as, test with strings.
[factor.git] / extra / sequences / extras / extras.factor
index c1f2b232b0947fc70608c73444b807237f8a72bf..d1fbe0e8532f09f4ec9bd11268b6732e9c0cdefd 100644 (file)
@@ -626,6 +626,11 @@ PRIVATE>
     [ '[ @ not ] find drop ] 2keep drop swap
     [ dup length ] unless* tail-slice ; inline
 
+:: join-with-as ( seq glue exemplar -- newseq )
+    seq length dup 1 - + 0 max exemplar new-sequence :> newseq
+    seq [ 2 * newseq set-nth-unsafe ] each-index
+    seq length 1 - [ 2 * 1 + glue swap newseq set-nth-unsafe ] each-integer
+    newseq ;
+
 : join-with ( seq glue -- newseq )
-    [ dup length dup 1 - + 0 max ] dip <array>
-    [ '[ 2 * _ set-nth-unsafe ] each-index ] keep ;
+    over join-with-as ;