]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: adding reverse-as.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 19 Sep 2012 20:29:34 +0000 (13:29 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 19 Sep 2012 20:29:59 +0000 (13:29 -0700)
extra/sequences/extras/extras-tests.factor
extra/sequences/extras/extras.factor

index b051a159d1dce1432fad669aab6e2847c91954b5..d9b0b9c27c4bd6ed170a65fc8e0f79e839c5986f 100644 (file)
@@ -146,3 +146,6 @@ IN: sequences.extras.tests
 { V{ 97 115 100 102 } } [
     "asdf" [ [ read1 ] V{ } loop>sequence ] with-string-reader
 ] unit-test
+
+{ "" } [ { } "" reverse-as ] unit-test
+{ "ABC" } [ { 67 66 65 } "" reverse-as ] unit-test
index 3bebf46973a2c0ce7b6afc35491f805b1a348011..48b83c96ad620e75dcc5800044a27058ac8a7c1a 100644 (file)
@@ -315,3 +315,13 @@ INSTANCE: odds immutable-sequence
 
 : loop>array ( quot -- seq )
    { } loop>sequence ; inline
+
+<PRIVATE
+
+: (reverse) ( seq -- newseq )
+    dup [ length ] keep new-sequence [ 0 swap copy ] keep reverse! ;
+
+PRIVATE>
+
+: reverse-as ( seq exemplar -- newseq )
+    [ (reverse) ] [ like ] bi* ;