]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/benchmark/reverse-complement/reverse-complement.factor
stomp.cli: simplify
[factor.git] / extra / benchmark / reverse-complement / reverse-complement.factor
index 1a4b6c6e49ad5ff8f04fc8fead7b2ca4e6ff24b6..9d76355e0f3113bc4e05da734193c4d934759eea 100644 (file)
@@ -1,9 +1,7 @@
 ! Copyright (C) 2006, 2008 Slava Pestov.
-! See http://factorcode.org/license.txt for BSD license.
-USING: io io.files io.files.temp io.streams.duplex kernel
-sequences sequences.private strings vectors words memoize
-splitting grouping hints tr continuations io.encodings.ascii
-ascii ;
+! See https://factorcode.org/license.txt for BSD license.
+USING: ascii grouping hints io io.encodings.ascii io.files
+io.files.temp kernel sequences strings tr vectors ;
 IN: benchmark.reverse-complement
 
 TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
@@ -16,17 +14,16 @@ TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
 
 : do-line ( seq line -- seq )
     dup first ">;" member-eq?
-    [ over show-seq print dup delete-all ] [ over push ] if ;
+    [ over show-seq print dup delete-all ] [ suffix! ] if ;
 
 HINTS: do-line vector string ;
 
-: (reverse-complement) ( seq -- )
-    readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
-
 : reverse-complement ( infile outfile -- )
     ascii [
         ascii [
-            500000 <vector> (reverse-complement)
+            500,000 <vector>
+            [ do-line ] each-line
+            show-seq
         ] with-file-reader
     ] with-file-writer ;